检测 Retina NSImage 的大小

Detecting Size of Retina NSImage

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

只好自己处理了。

你可以这样做:

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

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