ImageMagick能否返回图像大小?

ImageMagick能否返回图像大小?,image,unix,image-processing,command-line,imagemagick,Image,Unix,Image Processing,Command Line,Imagemagick,我正在使用命令行中的ImageMagick调整图像大小: convert -size 320x240 image.jpg 但是,我不知道如何确定最终图像的大小。因为这是一个成比例的图像比例,所以很可能新图像的大小是100x240或320x90(而不是320x240) 我可以调用“转换”命令来调整图像大小并返回新的图像尺寸吗?例如,伪代码: convert -size 320x240 -return_new_image_dimension image.jpg // returns the n

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

convert -size 320x240 image.jpg
但是,我不知道如何确定最终图像的大小。因为这是一个成比例的图像比例,所以很可能新图像的大小是100x240或320x90(而不是320x240)

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

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

您可以使用一个额外的调用来识别:

convert -size 320x240 image.jpg; identify -format "%[fx:w]x%[fx:h]" image.jpg
convert-大小为320x240 image.jpg;识别-格式化“%[fx:w]x%[fx:h]”图像.jpg
-ping
选项

还建议使用此选项,因为它可以防止将整个图像加载到内存中,如所述:

人员识别
说明:

-ping                efficiently determine image attributes
例如,我们可以用Wikimedia声称的29696×29696像素,文件大小:175.67 MB的图片测试一下

wget -O image.jpg https://upload.wikimedia.org/wikipedia/commons/e/e8/Van_Gogh_-_Starry_Night_-_Google_Art_Project-x0-y0.jpg
time identify -ping -format '%w %h' image.jpg
time identify       -format '%w %h' image.jpg
然而,我观察到,
-ping
至少在这种情况下对时间没有任何影响,也许它只对其他图像格式有影响

在ImageMagick 6.9.10和Ubuntu 20.04上测试


另请参见:

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

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

我不确定
%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
我不知道这里发生了什么,但您可以在标准输出上看到这两个值(其中=>前面的宽度和高度是正确的)

表示%w是当前宽度,%[width]是原始宽度。令人困惑


%w
%h
可能对大多数用途都是正确的,但并非对每一张图片都是正确的。

奇怪的是,为什么
标识格式“%[fx:w]x%[fx:h]”
标识格式“%[w]x%[h]”
更可取?我想不是这样,@mark。我无法想象在2009年,
%w
%h
还不受支持。但是如果
fx:
有一些副作用,那么我想我也会提到这一点。奇怪的我会做一些测试。。。
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