ImageMagick可以返回图像大小吗?

时间:2009-10-12 16:21:55

标签: image unix image-processing command-line imagemagick

我正在从命令行使用ImageMagick来调整图像大小:

convert -size 320x240 image.jpg

但是,我不知道如何确定最终图像的大小。由于这是一个比例图像比例,因此新图像很可能是100x240或320x90(不是320x240)。

我可以调用'convert'命令来调整图像大小并返回新的图像尺寸吗?例如,伪代码:

convert -size 320x240 -return_new_image_dimension image.jpg   // returns the new resized image dimensions

4 个答案:

答案 0 :(得分:41)

您可以额外拨打identify

convert -size 320x240 image.jpg; identify -format "%[fx:w]x%[fx:h]" image.jpg

答案 1 :(得分:32)

-ping选项

还建议使用此选项,因为它会阻止整个图像加载到内存中,如:https://stackoverflow.com/a/22393926/895245中所述:

identify -ping -format '%w %h' image.jpg

在ImageMagick 6.7.7,Ubuntu 14.04上测试。

另请参阅:Fast way to get image dimensions (not filesize)

答案 2 :(得分:3)

我不确定%w%h格式。虽然Photoshop说我的照片是2678x3318(我真的相信Photoshop),identify给了我:

identify -ping -format '=> %w %h' image.jpg
=> 643x796

([fx:w]和[fx:h])

也是如此

我必须使用

identify -ping -format '=> %[width] %[height]' image.jpg
=> 2678x3318

我不知道这里发生了什么,但你可以看到标准输出上的两个值( =>之前的宽度和高度是正确的)

identify -ping image.jpg
image.jpg PAM 2678x3318=>643x796 643x796+0+0 16-bit ColorSeparation CMYK 2.047MB 0.000u 0:00.000

The documentation表示%w是当前宽度,%[width]是原始宽度。混乱。

%w%h对于大多数用途可能是正确的,但不适用于每张图片。

答案 3 :(得分:0)

如果指定选项-verbose,请转换打印:

original.jpg=>scaled.jpg JPEG 800x600=>100x75 100x75+0+0 8-bit sRGB 4.12KB 0.020u 0:00.009
                                       ^^^^^^