在 iOS 中获取 CGImageRef 的平均 RGB 颜色

发布于 2024-12-07 08:14:48 字数 150 浏览 1 评论 0原文

我已经为此苦苦挣扎了几个小时,我希望其他人有一些见解。我正在寻找一种方法来获取 1x1 UIImage 的平均 RGB 颜色。到目前为止,我已经从 UIImage 创建了 CGImageRef,但我对 CoreGraphics 还很陌生,所以我不确定从哪里开始。任何帮助表示赞赏。谢谢!

I've been struggling with this for a couple of hours, and I'm hoping someone else has some insight. I'm looking for a way to get the average RGB color of a 1x1 UIImage. So far I've created a CGImageRef from the UIImage, but I'm really new to CoreGraphics, so I'm not sure where to go from there. Any help is appreciated. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷爱 2024-12-14 08:14:48

如果您有 CGImage,则可以通过调用

CGDataProviderRef CGImageGetDataProvider (
   CGImageRef image
);

CGImage doc

然后就可以复制数据

CFDataRef CGDataProviderCopyData(
   CGDataProviderRef provider
);

CGDataProvider 文档

CFData< /code> 与 NSData 相同,您可以对其进行转换并检索字节

- (const void *)bytes

CFData 文档

NSData doc

现在你有了原始字节,你可以用它们做任何事情,用来

CGImageAlphaInfo CGImageGetAlphaInfo (
   CGImageRef image
);
CGBitmapInfo CGImageGetBitmapInfo (
   CGImageRef image
);

获取图像数据如何存储在你得到的字节中的信息。

If you have a CGImage, you get the data by calling

CGDataProviderRef CGImageGetDataProvider (
   CGImageRef image
);

CGImage doc

Then you can copy the data

CFDataRef CGDataProviderCopyData(
   CGDataProviderRef provider
);

CGDataProvider doc

Since CFData is the same as NSData you can cast it and retrieve the bytes

- (const void *)bytes

CFData doc

NSData doc

Now you have the raw bytes, you can do anything with them, use

CGImageAlphaInfo CGImageGetAlphaInfo (
   CGImageRef image
);
CGBitmapInfo CGImageGetBitmapInfo (
   CGImageRef image
);

to get information how is the image data stored in the bytes you got.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文