使用ImageMagick Convert -combine合并图像颜色改变,如何保留原色彩?
图像合并后色彩失真的解决办法
问题说明
我尝试合并两张图像:一张是带网格的BMI图表,另一张是带数据点的图像。使用ImageMagick命令:
convert -combine -verbose -clamp Boys_BMI.png Ipc2eAOT.png new.png
执行后输出信息如下:
Boys_BMI.png PNG 1700x2200 1700x2200+0+0 8-bit Palette sRGB 33c 198982B 0.047u 0:00.040 Ipc2eAOT.png PNG 1700x2200 1700x2200+0+0 8-bit TrueColor sRGB 16711B 0.031u 0:00.032 Boys_BMI.png=>new.png PNG 1700x2200 1700x2200+0+0 8-bit sRGB 198982B 2.734u 0:00.328
但合并后的图像出现色彩改变,想知道如何让new.png保留两张原图的原始色彩。
解决方法
用正确的叠加命令替代通道合并
-combine是用于多通道图像合成的命令,不是图层叠加工具,这是色彩失真的主要原因。改用-composite命令实现图层叠加(数据点图覆盖在网格图上):
# ImageMagick 6及以下版本 convert Boys_BMI.png Ipc2eAOT.png -composite new.png # ImageMagick 7+版本推荐用magick命令 magick Boys_BMI.png Ipc2eAOT.png -composite new.png
统一图像格式避免调色板冲突
从输出能看到,网格图是8位调色板格式,数据点图是8位真彩色格式。合并前将调色板图转成真彩色,消除格式兼容问题:
convert Boys_BMI.png -type truecolor Ipc2eAOT.png -composite new.png
强制锁定色彩空间
若仍有色彩偏差,可指定输出图像的色彩空间为sRGB,与原图保持一致:
convert Boys_BMI.png Ipc2eAOT.png -composite -colorspace sRGB new.png
内容的提问来源于stack exchange,提问作者Marionette_66
相关产品推荐
相关产品推荐

