Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ JPG-如何从ICC配置文件部分APP2读取/提取数据_C++_C_Jpeg_Color Profile - Fatal编程技术网

C++ JPG-如何从ICC配置文件部分APP2读取/提取数据

C++ JPG-如何从ICC配置文件部分APP2读取/提取数据,c++,c,jpeg,color-profile,C++,C,Jpeg,Color Profile,我有一个JPG文件,从中我提取了ICC颜色配置文件部分APP2。然而,我不知道如何从中提取相关数据,如白点、黑点、RGB设置等。我甚至无法找到章节描述 我发现:它提供了API,但我不能使用它,因为它是运行后台进程的包装器。包含ICC配置文件的APP2段的总体格式在ICC规范的附录B.4中描述: JPEG标准ISO/IEC 10918-1[2]支持特定于应用程序的数据段。这些部分可能 用于使用ICC配置文件标记图像。APP2标记用于引入ICC配置文件标记。鉴于 由于只有15个受支持的应用程序标记,

我有一个JPG文件,从中我提取了ICC颜色配置文件部分APP2。然而,我不知道如何从中提取相关数据,如白点、黑点、RGB设置等。我甚至无法找到章节描述


我发现:它提供了API,但我不能使用它,因为它是运行后台进程的包装器。

包含ICC配置文件的APP2段的总体格式在ICC规范的附录B.4中描述:

JPEG标准ISO/IEC 10918-1[2]支持特定于应用程序的数据段。这些部分可能 用于使用ICC配置文件标记图像。APP2标记用于引入ICC配置文件标记。鉴于 由于只有15个受支持的应用程序标记,因此有可能有许多应用程序使用相同的标记。 因此,ICC标记通过以特殊的空终止字节序列开头的数据来识别, “国际商会档案”。 JPEG标记的长度字段只有两个字节长;长度字段的长度包含在总数中。 因此,值0和1不是法定长度。这将最大数据长度限制为65 533。这个 识别序列将进一步降低这一点。因为ICC配置文件很可能长于 因此,需要一种机制将概要文件分解为多个块,并将每个块放在单独的标记中。A. 因此,需要一种按顺序识别每个块的机制。 标识符序列后面是一个字节,指示块计数开始的序列号 1和一个字节,表示块的总数。序列中的所有块都应表示相同的值 块的总数。1字节的区块计数将可嵌入配置文件的大小限制为16 707 345字节

因此,为了获得一个可用的配置文件,您需要从每个块中去掉前面的ICC_配置文件、长度字段和序列号,然后按顺序将所有块放在一起

从这里开始,您将要查看ICC第7节的详细信息。一些数据(例如,光源的XYZ)很容易在配置文件标题中找到。其他的则需要根据概要文件中的数据进行计算,在某些情况下,这些数据可能非常重要

参考