objective-c - 测试 NSImage/CGImageRef 是否完全透明的最佳方法

标签 objective-c cocoa macos nsimage

我有一个带有图 block 的图像,我正在将其拆分并创建单独的图 block 。

但是,这些图像通常包含我希望排除的完全空白区域(在本例中为图 block )。这些区域是完全透明的。

现在,我该如何检测它们?可以通过 NSBitmapImageRep 逐像素读取图 block ,但这听起来效率不高。

那么测试图 block 透明度的最佳方法是什么(它们被裁剪为 CGImageRef,然后转换为 NSImage - 如果有帮助的话)

最佳答案

如果您不介意使用仅限 10.6 的调用,那么您可以尝试 NSImage 方法

hitTestRect:withImageDestinationRect:context:hints:flipped:

这比逐个像素检查更容易,但我不知道它是否会更有效。在某个地方,必须检查这些像素...

关于objective-c - 测试 NSImage/CGImageRef 是否完全透明的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2984131/

相关文章:

objective-c - 在 Objective-C 协议(protocol)中定义字符串常量的最佳方式是什么?

cocoa - 如何跟踪 TableView 单元格中按钮的选定行?

macos - Android NDK Build 在 mac 系统中失败,但在 windows 系统中有效

macos - 是否可以通过编程方式为 OS X 打开/关闭 "do not disturb"

objective-c - NSMutableArray 背后的数据结构是什么?

objective-c - 用于将 sqlite 表导出和导入到 XML for ObjC/iPhone 的库

ios - 在使用CGImageDestinationFinalize时如何避免malloc

cocoa - 如何调整 NSTextField 的大小以适合它所包含的文本?

macos - AppleScript 将邮件保存到 Outlook 15 for Mac 中的 eml 文件中

objective-c - UIImageView 的 UIImage 为零