2009-10-12 6 views
19

J'utilise ImageMagick de la ligne de commande pour redimensionner les images:Est-ce que ImageMagick peut renvoyer la taille de l'image?

convert -size 320x240 image.jpg 

Cependant, je ne sais pas comment déterminer la taille de l'image finale. Comme il s'agit d'une échelle d'image proportionnelle, il est très possible que la nouvelle image soit de taille 100x240 ou 320x90 (pas 320x240). Puis-je appeler la commande 'convert' pour redimensionner l'image et retourner les nouvelles dimensions de l'image? Par exemple, le code de pseudo:

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

Répondre

33

Vous pouvez utiliser un appel supplémentaire à identify:

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

curieux, pourquoi est-ce que 'identify -format"% [fx: w] x% [fx: h] "' est préférable à 'identify -format"% [w] x% [h] "'? – mark

+0

Je pense que ce n'est pas, @mark. Je ne peux pas imaginer qu'en 2009 les '% w' et'% h' n'étaient pas encore supportés. Mais si 'fx:' a un effet secondaire, je suppose que j'aurais aussi mentionné cela. Bizarre. Je vais faire quelques tests ... – Arjan

0

Si vous spécifiez l'option -verbose, convertir des impressions:

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

Je ne suis pas sûr avec le format %w et %h. Alors que Photoshop dit que mon image est 2678x3318 (et j'ai vraiment confiance Photoshop), identify me donne:

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

(il en va de [fx: w] et [fx: h])

je devais utiliser

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

Je ne sais pas ce qui se passe ici, mais vous pouvez voir les deux valeurs sur la sortie standard (où la largeur et la hauteur avant le => sont les bonnes)

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

The documentation dit% w est la largeur actuelle et % [largeur] est originale largeur. Déroutant.

%w et %h peut être correct pour la plupart des utilisations, mais pas pour chaque image.

Questions connexes