gpt4 book ai didi

ios - 如何检测图像是灰度

转载 作者:可可西里 更新时间:2023-11-01 06:18:29 25 4
gpt4 key购买 nike

我需要确定图像是灰度图像(仅包含黑色、白色或灰色阴影)还是包含任何颜色。

为此我应该使用哪些库?

最佳答案

此信息存在于任何 CGImageRef 对象中。您可以从任何 UIImage 获取此对象。特别是,您会感兴趣的是 CGImageGetColorSpace。一旦你有了它,你就可以在颜色空间上调用 CGColorSpaceGetNumberOfComponents。应该只有三种可能

CGColorSpaceGetNumberOfComponents 返回 1:此图像为灰度,已完成(一个异常(exception):它可能是仅 alpha,但我怀疑您会发送任何类似的图像。如果是,则有一种仅通过其 CGAlphaInfo) 确定图像是否为 alpha 的方法

CGColorSpaceGetNumberOfComponents 返回 3:此图像是 RGB,需要进一步分析以确定它是否是灰度(如其他答案所述,遍历像素,如果找到一个,其中! (R == G == B) 则不是灰度。

CGColorSpaceGetNumberOfComponents 返回 4:此图像为 CMYK,需要进一步分析。 CMYK 中的所有灰度都应为 C == M == Y(通常它们将为 0,否则会浪费墨水 [这种格式是专门为打印机开发的]),K 等于任何值。

CGColorSpaceGetNumberOfComponents 返回其他内容:...好吧...哭

更新

正如评论中所指出的,有一个更方便的函数来计算颜色模型。 CGColorSpaceGetModel 将返回类似 kCGColorSpaceModelMonochromekCGColorSpaceModelRGB 的值。这将消除上面的歧义。之后您可以用同样的方法检查 RGB 或 CMYK。

关于ios - 如何检测图像是灰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com