如何为 Mac 上的任何应用程序获取高分辨率应用程序图标?
How to get a high resolution app icon for any application on a Mac?
Apple 文档指定 NSWorkspace icon(forFile:) returns 一个 32x32 的图标,但我不确定如何指定不同的大小。
这是我用来显示 XCode 图标的示例 SwiftUI 代码:
Image(
nsImage: NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
).renderingMode(.original)
我找到的一种方法是使用 bestRepresentation
。您应该传入您希望图像所在的尺寸(例如 1024x1024),它会为您找到该尺寸的最佳表示。
if let rep = NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
.bestRepresentation(for: NSRect(x: 0, y: 0, width: 1024, height: 1024), context: nil, hints: nil) {
}
然后您可以 draw
NSImageRep
,或使用它创建一个 NSImage
:
let image = NSImage(size: rep.size)
image.addRepresentation(rep)
Apple 文档指定 NSWorkspace icon(forFile:) returns 一个 32x32 的图标,但我不确定如何指定不同的大小。
这是我用来显示 XCode 图标的示例 SwiftUI 代码:
Image(
nsImage: NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
).renderingMode(.original)
我找到的一种方法是使用 bestRepresentation
。您应该传入您希望图像所在的尺寸(例如 1024x1024),它会为您找到该尺寸的最佳表示。
if let rep = NSWorkspace.shared.icon(forFile: "/Applications/XCode.app/")
.bestRepresentation(for: NSRect(x: 0, y: 0, width: 1024, height: 1024), context: nil, hints: nil) {
}
然后您可以 draw
NSImageRep
,或使用它创建一个 NSImage
:
let image = NSImage(size: rep.size)
image.addRepresentation(rep)