1
我想從NSImage對象中獲取最高的NSBitmapImageRep。
例如,如果對象NSImage中包含:什麼是從NSImage對象獲得最高位圖表示的最佳方式
NSIconRefBitmapImageRep 0x1272d0 Size={128, 128} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=128x128 Alpha=YES Planar=NO Format=0 CurrentBacking=nil (faulting),
NSIconRefBitmapImageRep 0x11b330 Size={256, 256} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=256x256 Alpha=YES Planar=NO Format=0 CurrentBacking=nil (faulting),
NSIconRefBitmapImageRep 0x19fe10 Size={512, 512} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=512x512 Alpha=YES Planar=NO Format=0 CurrentBacking=nil (faulting),
NSIconRefBitmapImageRep 0x124d10 Size={32, 32} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=32x32 Alpha=YES Planar=NO Format=0 CurrentBacking=nil (faulting),
NSIconRefBitmapImageRep 0x142180 Size={16, 16} ColorSpace=Generic RGB colorspace BPS=8 BPP=32 Pixels=16x16 Alpha=YES Planar=NO Format=0 CurrentBacking=nil (faulting)
然後我想{512,512}表示。我正在使用下面的代碼。
NSBitmapImageRep* requiredBitmap = nil;
BOOL setValue =NO;
NSEnumerator* imageEnum = [[origImage representations] objectEnumerator];
while(imagerep = [imageEnum nextObject])
{
if ([imagerep isKindOfClass:[NSBitmapImageRep class]])
{
if (!setValue) {
requiredBitmap = imagerep;
setValue =YES;
}
if ([requiredBitmap pixelsHigh]<[imagerep pixelsHigh]) {
requiredBitmap = imagerep;
NSLog(@"%d", [imagerep pixelsHigh]);
}
}
}
NSImage* original512Image;
if(requiredBitmap)
{
original512Image = [[NSImage alloc] initWithData:[requiredBitmap TIFFRepresentation]];
}
是否有任何有效的方法來做到這一點?
你試過'bestRepresentationForRect:背景:提示:'具有非常大的矩形(或許是'CGRectInfinite')? – 2012-01-07 07:31:07
此方法在Mac OS X v10.6及更高版本中可用。我正在尋找Leopard os的解決方案。 – 2012-01-07 10:01:07