调整图像大小时,Imagemagick 会杀死颜色质量

Jam*_*lor 2 jpeg imagemagick

我正在尝试通过 imagemagick 调整一堆(450+)图像的大小,它们都从 500x500 开始,我已经编写了一个脚本来将它们调整为大约 5 种不同的大小。

现在我已经转换了它们,我注意到颜色质量受到了明显的影响。有什么我可以改变我的命令来提高质量的吗?

命令: convert input.jpg[0] -background black -density 72 -resize 440x440 -quality 100 -strip output.jpg

我无法上传实际文件,但这是一个裁剪版本(带填充)

原来的:
在此处输入图片说明

图像魔法:
在此处输入图片说明

mpy*_*mpy 5

您使用该-strip选项,它告诉转换

删除任何个人资料或评论的图像。

这包括颜色配置文件。因此,在使用嵌入颜色配置文件的图像查看器中,其output.jpg外观将与input.jpg使用时不同

convert input.jpg -background black -density 72 -resize 440x440 -quality 100 -strip output.jpg 
Run Code Online (Sandbox Code Playgroud)

因此,省略该-strip选项是在 中获得相同颜色的最简单方法output.jpg

convert input.jpg -background black -density 72 -resize 440x440 -quality 100 output.jpg 
Run Code Online (Sandbox Code Playgroud)

另一种可能性如下——如果你想去掉任何注释,但保留颜色:

  1. 提取颜色配置文件。
  2. jpegtran从 debian 包中剥离所有元数据libjpeg-progs(无损操作)。
  3. 调整图像大小并再次合并颜色配置文件。

    convert input.jpg colorprofile.icc
    jpegtran -copy none input.jpg > input_stripped.jpg
    convert input_stripped.jpg -profile colorprofile.icc -background black -density 72 -resize 440x440 -quality 100 output.jpg 
    
    Run Code Online (Sandbox Code Playgroud)