Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.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/9/opencv/3.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/8/meteor/3.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
使用Go和OpenCV在图像中读取/写入ICC配置文件_C_Opencv_Image Processing_Go_Color Profile - Fatal编程技术网

使用Go和OpenCV在图像中读取/写入ICC配置文件

使用Go和OpenCV在图像中读取/写入ICC配置文件,c,opencv,image-processing,go,color-profile,C,Opencv,Image Processing,Go,Color Profile,我正在编写代码来调整图像的大小和围棋。调整大小后,我写出的图像缺少原始图像中的ICC配置文件 是否有任何Go或C库可以读/写ICC配置文件?目标是不使用命令行工具,而是使用Go/C库,这样我就可以在流程中完成所有这些工作。我知道exiftool存在,并且可以为我做这件事,但我不想使用perl脚本。我只知道: 从JPEG缓冲区提取的小实用程序包 它接受带有JPEG的io.Reader,并从该JPEG返回带有嵌入ICC配置文件的缓冲区(如果有)。 如果没有,则返回一个空缓冲区 经过更多的研究,我找到

我正在编写代码来调整图像的大小和围棋。调整大小后,我写出的图像缺少原始图像中的ICC配置文件

是否有任何Go或C库可以读/写ICC配置文件?目标是不使用命令行工具,而是使用Go/C库,这样我就可以在流程中完成所有这些工作。我知道exiftool存在,并且可以为我做这件事,但我不想使用perl脚本。

我只知道:

从JPEG缓冲区提取的小实用程序包

它接受带有JPEG的
io.Reader
,并从该JPEG返回带有嵌入ICC配置文件的缓冲区(如果有)。
如果没有,则返回一个空缓冲区


经过更多的研究,我找到了答案

libvips不会剥离任何嵌入式配置文件。其中提到:

文件加载/保存操作(如tiffload、jpegsave等)与颜色无关。加载时,他们将看到的任何ICC配置文件作为元数据附加到VIP图像,保存时,他们将任何附加的配置文件写入文件。他们的目的是给你一些非常接近实际存储在文件中的东西,并留下颜色处理供你安排


opencv在读取时会丢弃任何图像头,因此不会保留icc或exif数据。(还有,将opencv不推荐的c-api包装起来是一个糟糕的想法,imho。完全过时的东西)
import "github.com/vimeo/go-iccjpeg/iccjpeg"

iccjpeg.GetICCBuf(input io.Reader) ([]byte, error)