Экспорт / импорт NSImage как ICO - PullRequest
0 голосов
/ 10 июля 2010

Я хотел бы сохранить и прочитать файл ICO. Не имеет значения, является ли его NSImage или NSBitmapImageRep или чем-то еще. Это просто нужно сделать. Как это могло быть достигнуто?

1 Ответ

1 голос
/ 11 июля 2010

Я выяснил это для себя. Вот мой код:

NSImage *o = [[NSImage alloc] initWithContentsOfFile:path];
CGImageDestinationRef dest = CGImageDestinationCreateWithURL(
                                                             (CFURLRef)[NSURL fileURLWithPath:newPath], 
                                                             (CFStringRef)@"com.microsoft.ico", 
                                                             o.representations.count,
                                                             NULL);
for (NSBitmapImageRep *rep in o.representations) {
    CGImageRef ref = rep.CGImage;
    CGImageDestinationAddImage(dest, 
                               ref, 
                               NULL);
}


CGImageDestinationFinalize(dest);
...