C语言 使用 Go 和 OpenCV 在图像中读/写 ICC 配置文件



我正在编写代码来使用 Go 和 go-opencv 包调整图像大小。调整大小后,我写出的图像缺少原始图像中的 ICC 配置文件。

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

我只知道go-iccjpeg:

一个小型实用程序包,用于从 JPEG 缓冲区中提取国际颜色联盟 (ICC) 配置文件

import "github.com/vimeo/go-iccjpeg/iccjpeg"
iccjpeg.GetICCBuf(input io.Reader) ([]byte, error)

它采用带有 JPEG 的io.Reader,并返回一个缓冲区,其中包含来自该 JPEG 的嵌入式 ICC 配置文件(如果有)。
如果没有,则返回一个空缓冲区。

经过更多的研究,我发现了libvips和go绑定。

libvips 不会剥离任何嵌入式配置文件。这篇博文提到了这一点:

文件加载/保存操作(如tiffload,jpegsave等)不对颜色做任何操作。在加载时,他们将看到的任何ICC配置文件作为元数据附加到vips图像,并在保存时将任何附加的配置文件写入文件。他们的目标是为您提供非常接近文件中实际存储的内容,并留下颜色处理供您安排。

相关内容

  • 没有找到相关文章

最新更新