我有一个JPG文件,从中提取了ICC颜色配置文件部分(APP2)。然而,我不知道如何从中提取相关数据,如白点、黑点、RGB设置等。我甚至找不到部分描述。
我发现:https://exiftool.org/它提供了API,但我不能使用它,因为它是运行后台进程的包装器。
包含ICC配置文件的APP2段的总体格式如ICC规范的附录B.4所述:
JPEG标准(ISO/IEC 10918-1[2])支持特定于应用程序的数据段。这些分段可能用于用ICC配置文件标记图像。APP2标记用于引入ICC配置文件标记。鉴于只有15个支持的APP标记,许多应用程序都有可能使用相同的标记。因此,通过以特殊的空终止字节序列开始数据来识别ICC标签,"ICC_file"。JPEG标记的长度字段只有两个字节长;长度字段的长度被包括在总数中。因此,值0和1不是合法长度。这将把最大数据长度限制为65533。这个识别序列会进一步降低这一点。因为ICC配置文件很可能比这就需要一种机制来将概要文件分解成块,并将每个块放在一个单独的标记中。A.因此,按顺序识别每个块的机制是必要的。标识符序列后面跟着一个字节,指示块的序列号(计数开始在1)和指示块的总数的一个字节。序列中的所有块都应该指示相同块的总数。1字节的块计数将可嵌入简档的大小限制为16707345字节。
因此,要获得可用的配置文件,您需要去掉前导";ICC_PROFILE";,长度字段和每个块的序列号,然后将所有块按顺序放在一起。
从那里,你会想看看国际商会第7节的详细信息。一些数据(例如,光源的XYZ)很容易在配置文件标题中找到。其他的则需要根据概要文件中的数据进行计算(在某些情况下,这可能非常不重要)。
参考
ICC规范