问题标签 [nsimagerep]

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 投票
0 回答
597 浏览

xcode7 - Xcode 7 指示 NSBitmapImageRep 中的堆缓冲区溢出 - bitmapData

刚刚发现通过 Xcode 7 中新的 Address Sanitizer 功能运行我的应用程序的问题,我无法完全理解:

NSImage我正在尝试从这样的初始化一个中型(588x375)纹理

一旦执行到代码示例的最后一行,我就会AsanDie抱怨带有此堆栈跟踪的堆缓冲区溢出(运行 10.11.1 beta):

使用此分配轨迹跟踪:

所以基本上深入AppKit的内部。

任何想法可能是什么问题..?

0 投票
1 回答
834 浏览

objective-c - 如何生成具有特定分辨率和特定尺寸(以毫米为单位)的 NSImage

我是 Objective-C 和可可编程的新手。我正在尝试生成高度为 128 毫米、宽度为 128 毫米、分辨率为 300 DPI 的图像。

NSString *image = [[NSImage alloc] initWithSize:NSMakeSize(1512, 756)];

在上面的代码行中,1512 和 756 被视为点。所以我无法将它转换为我需要的东西。它正在创建 (3024 * 1512) 大小的图像。

你能提出一些建议吗?在此先感谢。

这是我尝试过的代码

0 投票
1 回答
485 浏览

objective-c - 以二进制形式存储和检索 NSImage 的最佳实践

我正在使用NSImage's 并希望将它们存储在Core Data二进制对象中。我得到了工作,但我阅读了很多不同的方法NSImageRep来做到这一点。目前我正在做以下事情:

从图像创建二进制数据

从二进制数据创建图像

这是一种可接受且有效的方式还是有更好的方式?

0 投票
1 回答
676 浏览

objective-c - NSImage drawInRect 和 NSView cacheDisplayInRect 内存保留

我正在处理的应用程序图像。这就像用户最多放置 4 张图像,并根据用户选择的模板对它们进行应用布局。在最终视图中可能会添加 2-3 次图像。

布局中的每个图像都在 NSView 中绘制(使用 drawInRect 方法的 NSView 的 drawRect 方法)。现在通过将 NSView 保存为 Image 创建最终图像(通过布局所有图像来组合图像),并且一切正常。

现在我面临的问题是,一旦所有处理完成,应用程序就会保留内存。我使用了仪器分配,我没有看到内存泄漏,但我看到“持久字节”随着应用程序的每个会话而不断增加,并且一个用户报告了 GB 的问题。请看截图。

仪器内存使用情况 图像IO_TIFF 当我在 Instruments 中进一步调查时,我在下面看到导致内存保留的应用程序的代码快照。都与 ImageIO 和 coreImages 有关。从仪器看下面:

仪器代码快照

然而,这似乎只是 10.10 及以上系统的问题。在 10.9.x 中测试了相同版本的应用程序,内存使用量保持在 60MB。在应用程序中的会话执行期间,它会达到 200MB,但一旦完成,它就会恢复到通常用于某种应用程序的 50-60MB。

以上代码我用于在 NSView 的 drawRect 方法中绘制图像,图像中显示的代码用于将 NSView 作为图像。

更新:经过进一步调查,我发现缓存 NSI​​mage 的 TIFF 数据的是CGImageSourceCreateWithData。我更多地使用下面的代码来裁剪图像,如果我取消注释它的内存消耗就可以正常工作。

我还尝试将kCGImageSourceShouldCache 显式设置为 false(但默认情况下为 false),但结果相同。请帮助解决内存保留问题。

0 投票
1 回答
243 浏览

objective-c - NSBitmapImageRep 加载图片

我对目标 C 很陌生,并按照我找到的一些说明进行操作,但此刻我被卡住了。

我正在尝试使用以下代码加载图像:

“文件名”是一个有效的指针。但是编译器告诉我:

我错过了什么或做错了什么?

0 投票
1 回答
310 浏览

objective-c - 为什么 TIFFRepresentation 比实际图像文件大?

这是我使用的代码:

originalData.length给了我 1802224 字节(1.7MB)。而磁盘上的图像大小为 457KB。为什么TIFFRepresentation会变大,我应该使用哪种表示来获取原始图像(我想通过网络传输图像)?