问题标签 [nsimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6728 浏览

objective-c - 如何获取用户 Mac 的图标?

使用 Objective-C 和 Cocoa,有谁知道如何获取用户计算机的图标(在 Finder 的“设备”和“网络”下显示的图标)?不是硬盘图标,而是用户设备的实际图标。它的范围从 MacBook 图标到 Mac Pro 图标再到 Windows 蓝屏死机监视器图标。

我尝试了以下几方面的东西:

但这显然总是返回相同的图标。我也尝试过该iconForFile:方法,但我不知道用作参数的文件路径。谁能指出我正确的方向?

0 投票
1 回答
624 浏览

objective-c - 如何获取 Finder 中使用的桌面图标?

在 Objective-c/Cocoa 中,如何获取 Finder 用于桌面的图标(它看起来像带有菜单栏和停靠栏的黑色/粉色星云桌面图像)。

我试过这个:

但我得到的只是一个蓝色文件夹,上面有一个看起来像桌面的幻影框。是否有另一个提供此图标的常量,或者完全用于获取图标的另一种方法?

0 投票
2 回答
2668 浏览

cocoa - 打印 NSImage

我正在将 Cocoa-Java 代码迁移到 Cocoa + JNI,因为 Cocoa-Java 已被弃用。该代码打印存储在文件中的图像。新的 Cocoa 代码基本上是:

运行此代码最终会崩溃:

为什么?如何简单地打印存储在文件中的图像?

0 投票
1 回答
4623 浏览

objective-c - 如何在 OS X 10.5 和 10.6 上获取通用文件夹图标的 NSImage

我正在编写一个 Cocoa 应用程序,它在NSOutlineView中显示存档文件的内容。我在大纲列中为NSBrowserCell提供了一个自定义图标,它工作得很好,但我遇到了一个小障碍——使用[NSImage imageNamed:@"NSFolder"]在 10.6 上返回正确的图像(通用文件夹图标),但在 10.5 上它返回 nil,所以所有文件夹图标消失。(我找不到任何关于 NSFolder 图标名称的文档来查看它是何时引入的——我通过反复试验得到了它。)

是否有一种不推荐使用的方法来获取适用于 10.5 和 10.6 的通用文件夹图标?

0 投票
1 回答
1135 浏览

objective-c - 在 NSOutlineView 中增加太紧的图标间距

我正在编写一个 Cocoa 应用程序,它在NSOutlineView中显示存档文件的内容。我在大纲列中为NSBrowserCell提供了自定义图标,但我无法完全正确地设置间距 - 文件夹图标总是显得太靠近显示三角形,如下所示。(FWIW、VersionsBetterZip都显示相似的数据,没有间距问题。)

NSOutlineView-icon-spacing http://img.skitch.com/20090918-tgfjh9x8dhgqxqnb2su8fby4ng.jpg

因为只有文件夹图标才会有这个问题,所以我真的只关心在那个上下文中修复间距。(注意:我已经缓存了图标以供重复使用,因此如果有必要,我可以处理文件夹图像,因为它只会发生一次。)我不确定是否可以在 NSBrowserCell 实例中进行调整,但我还没有找到任何可行的方法,不是因为缺乏尝试。


对于好奇的人,JarScan是一个方便的(免费)命令行工具,用于在 JAR 文件中定位 Java 类。

0 投票
2 回答
2620 浏览

cocoa - 清除 NSImage 的 alpha 通道

可以通过分配一个每像素 32 位的临时位图,然后使用 for 循环清除 alpha 分量,最后再次将其转回 NSImage 来完成。

我怀疑可以使用 NSColor 和NSCompositingOperation的巧妙组合以更简单的方式完成。或者可能需要使用 drawAtPoint 将图像与自身合成。

我的代码看起来像这样。

注意:将 alpha 通道设置为 1 可以通过使用带有 NSCompositePlusLighter 的 blackColor 来完成。

清除 Alpha 通道的秘诀是什么?

0 投票
2 回答
1068 浏览

cocoa - 是否有将 NSImage 调整为最大文件大小的最佳方法?

这是我到目前为止所得到的:

该代码假定 200x200 PNG 将小于 128K,这是我的大小限制。200x200 足够大,但如果可能的话,我更愿意将尺寸最大化。

这是我的两个问题:

  1. 代码不起作用。我检查了导出文件的大小,它与原始文件大小相同。
  2. 有没有办法在我导出之前预测输出文件的大小,所以我可以最大化尺寸但仍然得到小于 128K 的图像?

这是工作代码。它相当草率,可能会使用一些优化,但此时它运行得足够快,我不在乎。它对大多数图片进行了 100 倍以上的迭代,并且以毫秒为单位结束。此外,此方法是在 上的类别中声明的NSImage

0 投票
2 回答
1301 浏览

cocoa - Objective C - NSImageView、NSImage、NSBitmapImage 代表对象生命周期?

我已经构建了一个视频查看器,它是一个 Safari 插件,可以显示来自网络设备的视频。查看器读取位图图像,准备它们,并将它们设置在 NSImageView 对象上,如下所示:

NSBitmapImage *bmImg = [[NSBitmapImage alloc] initWithBitmapDataPlanes: . . .]
NSImage *img = [[NSImage alloc] init];
[img addRepresentation:bmImg];

图像通过主线程上的“setImage”添加到 NSImageView。视频显示正常。

我的问题是,通过“setImage”设置下一个图像的行为不应该导致先前图像及其关联的位图图像被释放并随后释放吗?

我需要自己对分配的图像执行 [img release] 吗?

我是否需要从 img 中删除图像代表并发布它?

提前致谢。

0 投票
4 回答
2954 浏览

objective-c - Cocoa API 图像处理

有没有办法使用 Cocoa 进行简单的图像处理,例如调整亮度、对比度、曝光等?像 NSImage 这样的东西?

0 投票
1 回答
3443 浏览

objective-c - NSImage imageNamed:对于 Mac Mini 返回小图标而不是高分辨率

当使用NSImage'simageNamed:方法获取当前计算机的图标时,如果我在 Mac Mini 上运行,那么我会得到一个低分辨率的图像。如果我在我的 MacBook 上运行相同的代码,那么我会得到一个我期望的高分辨率图标。

我的代码如下:

当我在我的 MacBook 上运行它时,一切都很好,我得到了我电脑的 512x512 图标。当我在我的 Mac Mini 上运行它时,我得到一个 32x32 的图标,该图标已放大到 512x512。

关于如何获得高分辨率版本的任何想法?