使用 Image Magick 转换图像并显示结果
Convert images and show result using Image Magick
我正在使用 Image Magick 处理图像。这是我使用的命令:
convert source.png -resize 1200 -quality 75 result.jpg
它按预期工作。我想知道是否有一种方法可以报告转换结果,显示已完成多少压缩(以百分比或千字节为单位,或仅显示原始图像和转换后图像的大小)?
我试过-monitor
切换,但它只显示转换过程中的进度报告。
(我正在使用 Linux)
您使用的质量设置告诉 ImageMagick 将图像压缩多少。或者,您可以计算输出文件大小与输入大小的比率。或者 -quality 75 的输出文件大小与使用 -quality 100 时的输出文件大小的比率,即使 -quality 100 仍然压缩一些。
您可以通过
获取图片的大小
convert image -precision 16 -format "%b\n" info:
设置较大的精度将强制结果以字节为单位,但您必须从末尾删除 B 字符。因此,您可以执行以下操作来获取 output/input 文件大小的百分比:
outsize=$(convert output -precision 16 -format "%b\n" info: | sed 's/B//g')
insize=$(convert input -precision 16 -format "%b\n" info: | sed 's/B//g')
percent_size=$(convert xc: -format "%[fx:100*$outsize/$insize]\n" info:)
我正在使用 Image Magick 处理图像。这是我使用的命令:
convert source.png -resize 1200 -quality 75 result.jpg
它按预期工作。我想知道是否有一种方法可以报告转换结果,显示已完成多少压缩(以百分比或千字节为单位,或仅显示原始图像和转换后图像的大小)?
我试过-monitor
切换,但它只显示转换过程中的进度报告。
(我正在使用 Linux)
您使用的质量设置告诉 ImageMagick 将图像压缩多少。或者,您可以计算输出文件大小与输入大小的比率。或者 -quality 75 的输出文件大小与使用 -quality 100 时的输出文件大小的比率,即使 -quality 100 仍然压缩一些。
您可以通过
获取图片的大小convert image -precision 16 -format "%b\n" info:
设置较大的精度将强制结果以字节为单位,但您必须从末尾删除 B 字符。因此,您可以执行以下操作来获取 output/input 文件大小的百分比:
outsize=$(convert output -precision 16 -format "%b\n" info: | sed 's/B//g')
insize=$(convert input -precision 16 -format "%b\n" info: | sed 's/B//g')
percent_size=$(convert xc: -format "%[fx:100*$outsize/$insize]\n" info:)