NSImage のサイズ

Cocoa の NSImage の size プロパティは、画像ファイルに DPI 指定が埋め込まれている場合などに、ピクセル単位でない場合があります。

画像のサイズをピクセル単位で取得したい場合には、以下のように pixelsSize プロパティを定義して利用します。

@interface NSImage (NSImagePixelsExtension)
- (NSSize)pixelsSize;
@end

@implementation NSImage (NSImagePixelsExtension)

- (NSSize)pixelsSize
{
    for (NSBitmapImageRep* e in [self representations]) {
        if ([e isKindOfClass:[NSBitmapImageRep class]]) {
            return NSMakeSize(e.pixelsWide, e.pixelsHigh);
        }
    }
    return self.size;
}

@end