Macos 视网膜显示中NSImage添加表示的问题

Macos 视网膜显示中NSImage添加表示的问题,macos,nsimage,retina-display,Macos,Nsimage,Retina Display,我有两个CGImageRef,imgRef1和imgRef2。 我想创建一个NSImage,其中包含这些CGIMAGEREF的两种表示形式(用于创建NSCursor)。为此,我使用BitMapRepresentation initWithCGImage方法,然后将这些表示添加到NSImage。但这不起作用 然后我尝试从imageRef1和imgRef2创建NSImage,然后使用TiffRepresentation从这些NSImage生成NSData,然后添加这些表示以最终获得NSImage。但

我有两个CGImageRef,imgRef1和imgRef2。 我想创建一个NSImage,其中包含这些CGIMAGEREF的两种表示形式(用于创建NSCursor)。为此,我使用BitMapRepresentation initWithCGImage方法,然后将这些表示添加到NSImage。但这不起作用

然后我尝试从imageRef1和imgRef2创建NSImage,然后使用TiffRepresentation从这些NSImage生成NSData,然后添加这些表示以最终获得NSImage。但这同样是在视网膜显示器上显示低分辨率图像。 以下是示例代码:(如有任何帮助,将不胜感激)

float aHotSpotX=(float)nHotSpotX; float aHotSpotY=(float)nHotSpotY

NSSize nsSz;
nsSz.width = CGImageGetWidth(nLowImageRef);
nsSz.height = CGImageGetHeight(nLowImageRef);

NSImage* image = [[NSImage alloc] initWithSize:nsSz];

// Could have directly used NSBitmapImage initWithCGImage but some issues with that. Will revisit
NSImage *lImage = CreateNSImageFromCGImage(nLowImageRef);
NSData *lowData = [lImage TIFFRepresentation];

NSBitmapImageRep *lowRep = [NSBitmapImageRep imageRepWithData:lowData];
[image addRepresentation:lowRep];


NSImage  *hImage = CreateNSImageFromCGImage(nHiImageRef);
NSData *hiData = [hImage    TIFFRepresentation];

NSBitmapImageRep *hiRep = [NSBitmapImageRep imageRepWithData:hiData];
[image addRepresentation:hiRep];


NSCursor*   aCursor = [[NSCursor alloc] initWithImage:image hotSpot:NSMakePoint(aHotSpotX, aHotSpotY)];

[image release];

你需要颠倒顺序。我的测试表明,高分辨率图像需要位于TIFF的索引0处,低分辨率图像需要位于索引1处