JPEG中的颜色配置文件检测

时间:2009-09-22 10:46:35

标签: colors jpeg

我希望能够检测到JPEG中颜色配置文件的存在。要明确:我对实际进行色彩校正或对它们做任何其他事情都不感兴趣。

我做了一些调查,但我找不到任何明确的信息来源。这是我目前所知道的:

  • XMP块中有颜色配置文件信息。 XMP块位于 0xFFE1 JPEG部分(与EXIF相同)。此部分标记后跟 http://ns.adobe.com/xap/1.0/ 字符串。但是,当我删除此部分时,Photoshop仍然能够检测到颜色配置文件。

  • EXIF 本身也有一个色彩空间标签(tag = 0xA001 )。它只有一个在EXIF规范中定义的值:1 = sRGB。我注意到在我的图像中它取值0xFFFF,这意味着未校准。所以这不是这个标签。

  • 我做了一个实验,将一个图像保存为两个不同的颜色配置文件,除了XMP和EXIF的更改外,我注意到可能还有一个全新的JPEG部分。它以 0xFFE2 开头,其标记后跟字符串 ICC_PROFILE 。这似乎是最可能的情况。

有没有人有使用JPEG管理颜色配置文件的经验?我会说EXIF和XMP中的信息只是元数据,重要的是存在ICC_PROFILE部分。

2 个答案:

答案 0 :(得分:3)

ICC配置文件存储在JPEG文件的应用程序段中。这些块用于让应用程序存储他们需要的任何数据,因此它们不受JPEG规范的约束。换句话说,JPEG文件格式没有定义嵌入颜色配置文件的方法,您只是看到了事实上的方式。

由于任何人都可以使用应用程序段来进行任何操作,因此您需要先确定并验证内容,然后才能确定它包含ICC配置文件。

因此,有三种方式可以提供ICC配置文件的常用方法:

  • 通过在应用程序段02中嵌入ICC配置文件,前面加上ICC_PROFILE\0x00\0x01\0x01来识别它。我目前不确定这两个\0x01是否意味着什么,或者它们是否总是如此。在这14个字符之后,存储了实际的ICC配置文件。
  • 通过在应用程序段01中的嵌入式EXIF元数据文件中嵌入ICC配置文件。
  • 通过在应用程序段01中的嵌入式XAM元数据文件中嵌入ICC配置文件。这前缀为http://ns.adobe.com/xap/1.0/\0x00

我也找不到任何具体的信息。如果ICC说,那将是很好的,"这是如何做到的#34;,但我还没有找到任何类型。因此,据我所知,其中任何一个都可能被用作ICC配置文件,它将取决于它是否会加载配置文件的应用程序。 应用程序段02似乎是执行此操作的常用方法,但您要检查的内容可能取决于您的用例。正如其他评论所示,一些HELIOS EtherShare软件有自己的方式。 (我还没有确认元数据中存在ICC配置文件,但是我看起来并不那么难,如果你能找到具有多个冲突的ICC配置文件的文件,我就不会感到惊讶。 )

答案 1 :(得分:1)