it-roy-ru.com

Может ли 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
25
JacobT

Вы можете использовать дополнительный вызов identify:

конвертировать - размер 320x240 image.jpg; определить формат "% [fx: w] x% [fx: h]" image.jpg
40
Arjan

Также рекомендуется использовать параметр -ping, поскольку он предотвращает загрузку всего изображения в память, как указано в: https: // stackoverflow. com/a/22393926/895245 :

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

Протестировано на ImageMagick 6.7.7, Ubuntu 14.04.

Смотрите также: БЫСТРЫЙ способ получить размеры изображения (не размер файла)

Я не уверен с форматом %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 является текущей шириной, а% [width] является оригинальной ширина. Смешение.

%w и %h могут быть правильными для большинства применений, но не для каждого изображения.

3
emale

Если вы укажете опцию -verbose, преобразуйте отпечатки:

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