在NSImageView中绘制NSBitmapImageRep

Thy*_*hys 6 xcode cocoa image

如何在NSImageView中绘制NSBitmapImageRep?

Ken*_*Ken 14

NSImage *im = [[[NSImage alloc] init] autorelease];
[im addRepresentation:bitmapRep];
[imageView setImage:im];
Run Code Online (Sandbox Code Playgroud)


Ant*_*udt 6

满容易:

NSImage *image = [[NSImage alloc] initWithCGImage:[bitmapRep CGImage] size:NSMakeSize(width,height)];
Run Code Online (Sandbox Code Playgroud)

然后:

[imageView setImage:image];
Run Code Online (Sandbox Code Playgroud)

另一种可能性是将其转换为TIFF( - (NSData*)TIFFRepresentation)并使用它来创建NSImage对象,但这可能会产生相当大的开销.

另请注意,NSBitmapImageRep - (CGImageRef)CGImage的方法是10.5或更高.

编辑:

如需更清晰的解决方案,请查看@Ken的答案.

  • 这在技术上有效,但是很迂回.NSImage是NSImageReps的容器.所以如果你有一个代表,只需把它放在一个图像中.掉到CG有点随机. (2认同)