【问题标题】:Get the full size icons of the Trash can获取垃圾桶的全尺寸图标
【发布时间】:2011-06-01 13:27:25
【问题描述】:

我正在尝试在我的应用程序中显示垃圾箱的图标,无论是空的还是满的。我尝试了几种方法来获取图标,但每次的大小都是 32x32。你知道获得全尺寸图像的方法吗?

【问题讨论】:

  • 仅供参考,未经许可,您不能使用 Apple 的图像。如果您需要垃圾桶图标,请查看iconfinder.com

标签: objective-c cocoa macos icons recycle-bin


【解决方案1】:

我假设你通过 NSWorkspace 获取垃圾桶图标,使用 IconsCore.h 中的 kTrashIcon 常量(如果你没有,这是:

NSImage* image = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kTrashIcon)];

...这个 NSImage 包含许多不同大小的表示。如果您想要最大的,只需遍历可用的表示即可找到它:

NSEnumerator* representationEnumerator = [[image representations] objectEnumerator];
NSSize biggestSize = NSMakeSize(0, 0);
NSSize size;
while ((size = [(NSImageRep*)[representationEnumerator nextObject] size]).width) {
    if (size.width > biggestSize.width) {
        biggestSize = size;
    }
}
[image setSize:biggestSize];

…在我的电脑上,这会导致 NSImage 设置为 512x512。

【讨论】:

  • +1,忘了这一切——比硬编码路径好得多。还有kFullTrashIcon
【解决方案2】:

如果您从以下文件创建图像,请意识到 32px x 32px 只是 默认 大小:

/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/TrashIcon.icns

只需将其调整为您想要的大小:

NSString *path = @"/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/TrashIcon.icns";
NSImage *image = [[[NSImage alloc] initWithContentsOfFile:path] autorelease];
[image setSize:NSMakeSize(512.0, 512.0)];

当您这样做时,NSImage 将自动从可用的图像代表中选择合适的图像代表。例如,记录图像显示如下描述:

image == NSImage 0x102e16bc0 Size={512, 512} Reps=(

    "NSBitmapImageRep 0x102e1f650 Size={512, 512} ColorSpace=(not yet loaded)
      BPS=8 BPP=(not yet loaded) Pixels=512x512 Alpha=YES Planar=NO
  Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",

    "NSBitmapImageRep 0x102e24c80 Size={256, 256} ColorSpace=(not yet loaded)
     BPS=8 BPP=(not yet loaded) Pixels=256x256 Alpha=YES Planar=NO
  Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",

    "NSBitmapImageRep 0x102e25540 Size={128, 128} ColorSpace=(not yet loaded)
    BPS=8 BPP=(not yet loaded) Pixels=128x128 Alpha=YES Planar=NO
  Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",

    "NSBitmapImageRep 0x102e25e30 Size={32, 32} ColorSpace=(not yet loaded)
    BPS=8 BPP=(not yet loaded) Pixels=32x32 Alpha=YES Planar=NO 
  Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0",

    "NSBitmapImageRep 0x102e26720 Size={16, 16} ColorSpace=(not yet loaded)
    BPS=8 BPP=(not yet loaded) Pixels=16x16 Alpha=YES Planar=NO
  Format=(not yet loaded) CurrentBacking=nil (faulting) CGImageSource=0x102e187d0"
)

大多数表示文件图标的图像(例如NSWorkspace 返回的图像)都有多种可用尺寸,但默认尺寸为 32 x 32。

【讨论】:

  • 我使用了上一个答案,但 +1 以获得很好的解释。谢谢!
【解决方案3】:

/System/Library/CoreServices/Dock.app/Contents/Resources/trashfull.png /System/Library/CoreServices/Dock.app/Contents/Resources/trashempty.png

这是 128x128 图标

【讨论】:

  • Mac App Store 允许这样做吗?
  • @AP No. 未经许可不得使用 Apple 的图片。
【解决方案4】:

在 Google 图片上搜索“Mac OS 垃圾箱”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多