如何强制 imagemagick 保留图像的原始色彩空间

How to force imagemagick to keep the original colorspace of an image

我在使用 imagemagicks 转换和保持色彩空间时遇到问题。

我有一张纯黑色的 JPEG(这是一种边缘情况)。当我 运行 在上面识别时,这是输出:

black.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 12787B 0.000u 0:00.000

然后我在图片中添加一些文字:

convert black.jpg -pointsize 50 -fill WHITE -draw "text 100,100 'foobar'" test.jpg

现在 运行ning 识别结果测试图像显示:

test.jpg JPEG 1920x1080 1920x1080+0+0 8-bit Gray 256c 11316B 0.000u 0:00.000

我试图添加 -colorspace sRGB 选项,但它根本没有帮助。无论我做什么,颜色空间总是从 sRGB 转换为灰色。

如何让 imagemagick 保留原始图像中的色彩空间?

ImageMagick 6.9.10-23 Q16 arm 20190101

在 Imagemagick 中,对于大多数格式,您只需添加 -type truecolor。例如:

convert black.jpg -pointsize 50 -fill WHITE -draw "text 100,100 'foobar'" -type truecolor test.jpg


应该做你想做的。

对于 PNG,您需要添加 PNG24: 以在输出前添加 PNG24:test.png