5

我正在使用类iconForFile:选择器NSWorkspace,但它返回低质量的图像。

谁能告诉我为什么会这样?是否有任何开关或标志来告诉框架以不同的格式返回图像?

4

2 回答 2

6

文档说明返回的图标大小为 32x32,但您可以使用-[NSImage setSize:]它,它可能会加载更大的表示形式:

NSImage * iconImage = [[NSWorkspace sharedWorkspace] iconForFile:file];
[iconImage setSize:NSMakeSize(128, 128)];

您还可以使用图标服务(例如GetIconRefFromFileInfo)或 QuickLook(例如QLThumbnailImageCreate)来获取更大尺寸的文件图标或预览图标。

于 2013-05-14T13:36:21.950 回答
0

一个 Swift 扩展,可让您使用 Justin 的解决方案定义所需的高度(宽度)

extension NSWorkspace {
    func icon(for url: URL, height: Int) -> NSImage {
        let image = icon(forFile: url.path)
        image.size = NSSize(width: height, height: height)
        return image
    }
}
于 2021-02-09T13:16:33.623 回答