NSImage 相当于 ImageMagick#export_pixels

Posted

技术标签:

【中文标题】NSImage 相当于 ImageMagick#export_pixels【英文标题】:NSImage equivalent of ImageMagick#export_pixels 【发布时间】:2015-01-18 16:30:05 【问题描述】:

我正在寻找从 NSImage(和/或 UIImage)中找到 ImageMagick#export_pixels 会产生的等效 NSData 输出。

最终目标是对生成的 NSData 进行 MD5 哈希处理,以将其与图像魔法函数产生的字节生成的 MD5 哈希值进行比较。 (背景:我已经从文件中创建并保存了图像魔术像素数据的 md5 哈希值。如果我将这些相同的文件加载到 ios/OSX 应用程序中,我想生成一个 md5 哈希值以快速检查该文件之前是否已经看过)

我想在不直接拉入 ImageMagick 库的情况下(如果可能的话)直接在 iOS/OSX 上做它,但我是 iOS/OSX 库/框架的新手,当然希望得到一些指导。

提前致谢!

【问题讨论】:

【参考方案1】:

您可以通过这种方式访问​​ UIImage 的原始字节:

CGDataProviderRef provider = CGImageGetDataProvider(image.CGImage);
NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider));
const uint8_t* bytes = [data bytes];

或者,如果您只想从 UIImage 中获取 NSData,您可以这样做:

NSData *imageData = UIImagePNGRepresentation(image);
NSData *imageData = UIImageJPEGRepresentation(image, compression);

【讨论】:

以上是关于NSImage 相当于 ImageMagick#export_pixels的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick相当于PhotoShop Curves

如何使用 ImageMagick 将高度图分成几层?

在 Swift 中将 NSImage 放置在透明画布上

将 SwiftUI 视图转换为 NSImage

NSImage 标准图稿和图标 NSImageNameStatusAvailable

Xcode 操场并初始化 NSImage