Если вы создаете изображение из следующего файла, то поймите, что 32px x 32px - это просто по умолчанию размер:
/ System / Library / CoreServices / CoreTypes.bundle /Содержание / Ресурсы / TrashIcon.icns
Просто измените его размер до желаемого:
NSString *path = @"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/TrashIcon.icns";
NSImage *image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];
[image setSize:NSMakeSize(512.0, 512.0)];
Когда вы это сделаете, NSImage
автоматически выберет подходящее изображение изте, которые доступны.Например, регистрация изображения показывает следующее описание:
image == NSImage 0x102e16bc0 Size={512, 512} Reps=(
"NSBitmapImageRep 0x102e1f650 Size={512, 512} ColorSpace=(not yet loaded)
BPS=8 BPP=(not yet loaded) Pixels=512x512 Alpha=YES Planar=NO
Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",
"NSBitmapImageRep 0x102e24c80 Size={256, 256} ColorSpace=(not yet loaded)
BPS=8 BPP=(not yet loaded) Pixels=256x256 Alpha=YES Planar=NO
Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",
"NSBitmapImageRep 0x102e25540 Size={128, 128} ColorSpace=(not yet loaded)
BPS=8 BPP=(not yet loaded) Pixels=128x128 Alpha=YES Planar=NO
Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",
"NSBitmapImageRep 0x102e25e30 Size={32, 32} ColorSpace=(not yet loaded)
BPS=8 BPP=(not yet loaded) Pixels=32x32 Alpha=YES Planar=NO
Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",
"NSBitmapImageRep 0x102e26720 Size={16, 16} ColorSpace=(not yet loaded)
BPS=8 BPP=(not yet loaded) Pixels=16x16 Alpha=YES Planar=NO
Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0"
)
Большинство изображений, представляющих значки файлов, такие как те, которые возвращены NSWorkspace
, будут иметь много доступных размеров, хотя 32 x 32 является размером по умолчанию.