Как записать PNG-файл 16x16 для значка типа файла в Какао? Я пробовал это раньше с кодом, как фрагмент ниже. Фрагмент работал на PPC-машине с Mac OS X 10.5, но, похоже, больше не работает на Mac OS X 10.6: записанный PNG имеет размер 512x512, а не 16x16.
NSImage * icon = [[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode(kGenericFolderIcon)];
[icon setSize: NSMakeSize(16.0,16.0)];
NSBitmapImageRep * bitmapRep = [NSBitmapImageRep imageRepWithData: [icon TIFFRepresentation]];
NSData * data = [bitmapRep representationUsingType: NSPNGFileType properties: nil];
[data writeToFile: @"/tmp/test.png" atomically: NO];
Из того, что я понимаю из документации по NSImage
и NSImageRep
, тот факт, что вышеупомянутый код работал раньше, был совпадением, поскольку setSize:
устанавливает только "размер рисунка" изображения, который не обязательно совпадает «физический размер» его представления (й).
Итак, как правильно получить файл PNG размером 16x16? Кроме того, значки в Mac OS X могут включать специально нарисованную версию для размера 16x16, которая является , а не просто уменьшенной версией "большой" иконки; как убедиться, что эта специальная версия записана в файл PNG, если она доступна?