我有两个CGImageRef,imgRef1和imgRef2。 我想创建一个NSImage,其中包含两个CGImageRefs表示(用于创建NSCursor)。为此,我使用了BitMapRepresentation initWithCGImage方法,然后将这些表示添加到NSImage。但这不起作用。
然后我尝试从imageRef1和imgRef2创建NSImage,然后使用TiffRepresentation从那些NSImage生成NSData,然后添加这些表示以最终获得NSImage。但同样这也是视网膜显示器中的低分辨率图像。 HEre是示例代码:(任何帮助将不胜感激)
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];
答案 0 :(得分:1)
您需要撤消订单。我的测试表明,较高分辨率的图像需要位于TIFF的索引0和索引1处的较低分辨率图像。