TUN*_*R88 3 image-processing objective-c ios
我需要确定图像是灰度(仅包含黑色,白色或灰色阴影)还是包含任何颜色.
我应该使用哪些库?
bor*_*den 11
此信息存在于任何CGImageRef
对象中.你可以从任何人那里得到这个对象UIImage
.特别是,你会感兴趣的是CGImageGetColorSpace
.一旦你有了,你可以调用CGColorSpaceGetNumberOfComponents
颜色空间.应该只有三种可能性
CGColorSpaceGetNumberOfComponents
返回1:此图像为灰度,完成(一个例外:它可能只有alpha,但我怀疑你会发送任何类似的图像.如果你是,有一种方法可以确定图像是否只有alpha通过它CGAlphaInfo
)
CGColorSpaceGetNumberOfComponents
返回3:这个图像是RGB,需要进一步分析以确定它是否是灰度(正如其他答案所述,循环像素,如果你找到一个在哪里!(R == G == B)那么它不是灰度.
CGColorSpaceGetNumberOfComponents
返回4:此图像为CMYK,需要进一步分析.CMYK中的所有灰度应为C == M == Y(通常它们将为0,否则将浪费墨水[此格式是专门针对打印机开发的]),K等于任何值.
CGColorSpaceGetNumberOfComponents
返回别的东西:......好吧......哭
UPDATE
正如评论中指出的那样,有一个更方便的功能来确定颜色模型. CGColorSpaceGetModel
将返回像kCGColorSpaceModelMonochrome
或的值kCGColorSpaceModelRGB
.这将带来上述模糊性.之后,您可以检查RGB或CMYK的相同方式.
归档时间: |
|
查看次数: |
1844 次 |
最近记录: |