ImageMagick的可以返回图像的大小?(Can ImageMagick return the

2019-08-17 21:09发布

我使用ImageMagick的命令行来调整图像:

convert -size 320x240 image.jpg

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

我能叫“转换”命令来调整图像的大小,并返回新的图像尺寸是多少? 例如,伪代码:

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

Answer 1:

你可以使用一个额外的调用来identify

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


Answer 2:

-ping选项

还建议该选项,因为它防止被加载到存储器,如在所提到的整个图像: https://stackoverflow.com/a/22393926/895245 :

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

在测试了ImageMagick的6.7.7,Ubuntu的14.04。

另请参见: 快速的方式来获得图像尺寸(文件大小不)



Answer 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

文档说%w是当前宽度和%[宽度]是原始宽度。 混乱。

%w%h可能对大多数应用是正确的,但并不适用于所有的图片。



Answer 4:

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

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


文章来源: Can ImageMagick return the image size?