gpt4 book ai didi

cocoa - 如何将 Cocoa 文件类型图标写为 16x16 PNG 文件?

转载 作者:行者123 更新时间:2023-12-03 16:59:33 24 4
gpt4 key购买 nike

如何在 Cocoa 中为文件类型图标写出 16x16 PNG 文件?我之前尝试过使用如下代码片段所示的代码。该代码片段适用于 Mac OS X 10.5 的 PPC 机器,但似乎不再适用于 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];

根据我对 NSImageNSImageRep 文档的了解,上述代码之前工作的事实是巧合,如 setSize:仅设置图像的“绘图尺寸”,不一定与其表示的“物理尺寸”匹配。

那么获取 16x16 大小的 PNG 文件的正确方法是什么?此外,Mac OS X 上的图标可以包括专门绘制的 16x16 尺寸版本,这不仅仅是“大”图标的缩小版本;当有可用的 PNG 文件时,如何确保将这一特殊版本写入 PNG 文件?

最佳答案

Nikolai 是对的,您应该首先检查图像是否具有 16x16 表示形式,但要将图像大小简单地调整为 16 x 16,您可以这样做:

NSImage * icon = [[NSWorkspace sharedWorkspace] iconForFileType: NSFileTypeForHFSTypeCode(kGenericFolderIcon)];
[icon setScalesWhenResized:YES]; //this makes NSImage create a new representation
[icon setSize: NSMakeSize(16.0,16.0)];

关于cocoa - 如何将 Cocoa 文件类型图标写为 16x16 PNG 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com