检测视网膜NSImage的大小

时间:2015-01-05 19:34:56

标签: macos nsimage nsimageview retina

我将图像放入NSImageView并输出图像的大小。这适用于标准图像,但我希望以非视网膜大小输出视网膜图像的大小,例如100x100 @ 2x图像我想输出50x50的大小。除了检测文件名,我无法找到一种方法。有没有办法检测图像的比例,以便我可以操纵输出尺寸?

1 个答案:

答案 0 :(得分:1)

我必须自己解决这个问题。

你可以这样做:

NSImage *image = [...];
NSData* data = image.TIFFRepresentation;                
NSBitmapImageRep* bitmap = [NSBitmapImageRep imageRepWithData:data];
CGFloat actualHeight = bitmap.pixelsHigh;

那么,如果您将image.size.heightbitmap.pixelsHigh进行比较,就可以判断它是否是您正在处理的Retina图像。