我正在尝试为Mac OS X创建一个将图像类型转换为icns文件的应用程序。我想知道如何开始这样做。任何建议都会很好!
谢谢,
凯文
答案 0 :(得分:3)
使用CGImageSource API(例如CGImageSourceCreateWithURL
,CGImageSourceCreateImageAtIndex
)将每个图片加载到CGImageRef
。然后使用CGImageDestination API(例如CGImageDestinationCreateWithURL
,CGImageDestinationAddImage
,CGImageDestinationFinalize
)将您拥有的许多图像合并到一个图标文件中。 CGImageDestinationCreateWithURL
的第三个参数是kUTTypeAppleICNS
。
答案 1 :(得分:1)
1创建名为icon.iconset
的文件夹
2将以下一个或多个图像添加到文件夹中:
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
3运行此命令,将创建icon.icns
。
iconutil -c icns icon.iconset
答案 2 :(得分:0)
将包含图标的NSImage保存为TIFF文件(使用NSData* tiff = [image TIFFRepresentation];
创建带有TIFF文件的NSData,然后使用[tiff writeToFile:tiffFile atomically:YES];
将其保存在某个文件夹中),然后使用NSTask使用tiff2icns
将TIFF文件转换为ICNS文件。
tiff2icns /Users/Me/Desktop/pic.tiff /Users/Me/Desktop/pic.icns
现在,完整代码的示例(图像是NSImage文件的图标,iconFile是一个NSString,其中包含icns的最终位置):
NSString* tiffFile = [NSString stringWithFormat:@"%@.tiff",iconFile];
NSData* tiff = [image TIFFRepresentation];
[tiff writeToFile:tiffFile atomically:YES];
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/tiff2icns"];
[task setArguments:[NSArray arrayWithObjects:tiffFile, iconFile, nil]];
[task launch];
[task waitUntilExit];
[[NSFileManager defaultManager] removeItemAtPath:tiffFile error: NULL];
就是这样。