有谁能告诉我如何才能获得NSImage的真实宽度和高度?我注意到DPI高于72的图像通过NSImage.size参数得到的宽度和高度不准确。
我在Cocoadev上看到了这个例子:
NSBitmapImageRep *rep = [image bestRepresentationForDevice: nil];
NSSize pixelSize = NSMakeSize([rep pixelsWide],[rep pixelsHigh]);
然而,bestRepresentationForDevice在10.6上已弃用...我可以使用哪种替代方法,文档不提供不同的方法?
答案 0 :(得分:4)
从NSImage的TIFF表示构建NSBitmapImageRep
NSBitmapImageRep* rep = [NSBitmapImageRep imageRepWithData:[image TIFFRepresentation]];
答案 1 :(得分:1)
遍历图像的表示,寻找具有最大-size的那个。调用-bestRepresentationForRect:context:hints:如果你输入一个非常大的矩形,你应该为你做这个。
答案 2 :(得分:0)
@interface NSImage (Representation)
-(NSBitmapImageRep*)bitmapRepresentation;
@end
@implementation NSImage (Representation)
-(NSBitmapImageRep*)bitmapRepresentation {
for (id thing in self.representations) {
if (![thing isKindOfClass:[NSBitmapImageRep class]]) continue;
return (NSBitmapImageRep*)thing;
}
return nil;
}
@end