热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

确定JPEG的色彩空间

如何解决《确定JPEG的色彩空间》经验,为你挑选了1个好方法。

我正在编写一个用于确定JPEG图像颜色空间的代码.我找到了两个可以帮助我实现这个的参考资料.一个是在oracle.com上,另一个是来自ijg.com的C源代码,"负责原始JPEG标准的参考实现".

但他们确实有所不同.例如,在没有Adobe标记的IJG中,有4个通道,它被假定为CMYK,但在oracle中它是YCCA.此外,IJG的实现并未考虑子采样,而对于4通道子采样,它在oracle规范中是YCCK,依此类推.

ColorSpace类中还有许多缺失,当我实现oracle的逻辑时,我需要指定3个额外的颜色空间,如YCCK,YCCA,RGBA.

另一点是,我发现信息JPEG不支持alpha通道透明度在这里,为什么会甲骨文谈论YCCA和RGBA在JPEG metadat说明书的背景下?

结果当用IJG的逻辑检查图像时,它告诉我它是CMYK(在ubuntu上用ImageMagick检查图像,它也说它是CMYK),用oracle的逻辑它是YCCA.谁相信?为什么oracle不依赖于原始的JPEG规范?或者还有其他我不知道的事情?



1> Giacomo Cate..:

在对旧的JPEG标准设备发表评论后,我终于找到了答案。

关于ISO / IEC 10918-6:2013(E)第6.1节:

假设仅使用一种成分编码的图像是灰度数据,其中0为黑色,255为白色。

除非图像包含6.5.3中指定的APP14标记段,否则假定将用三部分编码的图像编码为YCbCr的RGB数据,在这种情况下,根据APP14标记的应用数据,将颜色编码视为RGB或YCbCr分割。RGB和YCbCr之间的关系如Rec.6中所定义。ITU-T T.871 | ISO / IEC 10918-5。

假设使用四个分量编码的图像为CMYK,其中(0,0,0,0)表示白色,除非图像包含6.5.3中指定的APP14标记段,在这种情况下,颜色编码被视为CMYKYCCK根据APP14标记片段的应用数据。CMYKYCCK之间的关系定义见第7节。

并且APP14标志为“ Adobe\0”,AP12具有转换标志:

应支持转换标志值0、1和2,它们的解释如下:

0 – CMYK,用于用四个分量编码的图像,其中所有四个CMYK值都被补充;RGB,用于用三个分量编码的图像;也就是说,APP14标记未指定应用于图像数据的转换。

1 –使用YCbCr颜色编码以三个分量编码的图像。

2 –使用YCCK颜色编码以四个分量编码的图像。

因此,这取决于:应该为CMYK,但是如果APP14和AP12的值正确,则可能为YCCK。


推荐阅读
author-avatar
草原华子无敌_531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有