Может ли ImageMagick вернуть размер изображения? - PullRequest
30 голосов
/ 12 октября 2009

Я использую 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 ]

42 голосов
/ 12 октября 2009

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

convert -size 320x240 image.jpg; identify -format "%[fx:w]x%[fx:h]" image.jpg
33 голосов

-ping опция

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

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

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

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

3 голосов
/ 11 января 2017

Я не уверен с форматом %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

Я не знаю, что здесь происходит, но вы можете увидеть оба значения на стандартном выводе (где ширина и высота перед the => являются правильными)

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 могут быть правильными для большинства применений, но не для каждого изображения.

0 голосов
/ 16 ноября 2016

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

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