www script org convert image unix image-processing command-line imagemagick

script - ¿ImageMagick puede devolver el tamaño de la imagen?



imagemagick linux (4)

No estoy seguro con el formato %w y %h . Mientras que Photoshop dice que mi foto es 2678x3318 (y realmente confío en Photoshop), identify me da:

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

(Lo mismo ocurre con [fx: w] y [fx: h])

Tuve que usar

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

No sé qué está pasando aquí, pero puede ver ambos valores en la salida estándar (donde el ancho y la altura antes de = = son los correctos)

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

La documentación dice que% w es el ancho actual y% [ancho] es el ancho original . Confuso.

%w y %h pueden ser correctos para la mayoría de los usos, pero no para todas las imágenes.

Estoy usando ImageMagick desde la línea de comando para cambiar el tamaño de las imágenes:

convert -size 320x240 image.jpg

Sin embargo, no sé cómo determinar el tamaño de la imagen final. Como se trata de una escala de imagen proporcional, es muy posible que la nueva imagen tenga un tamaño de 100x240 o 320x90 (no de 320x240).

¿Puedo llamar al comando ''convertir'' para cambiar el tamaño de la imagen y devolver las nuevas dimensiones de la imagen? Por ejemplo, pseudo código:

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


Puede usar una llamada adicional para identify :

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


Si especifica la opción -verbose , convierta impresiones:

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