2009-10-12 11 views
19

Sto usando ImageMagick dalla riga di comando per ridimensionare le immagini:ImageMagick può restituire la dimensione dell'immagine?

convert -size 320x240 image.jpg 

Tuttavia, non so come determinare la dimensione dell'immagine finale. Poiché si tratta di una scala di proporzioni dell'immagine, è molto probabile che la nuova immagine abbia una dimensione di 100x240 o 320x90 (non 320x240).

Posso chiamare il comando 'converti' per ridimensionare l'immagine e restituire le nuove dimensioni dell'immagine? Ad esempio, il codice pseudo:

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

risposta

33

si potrebbe usare una chiamata supplementare per identify:

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

curioso, perché è "identificare -formato"% [fx: w] x% [fx: h] "' preferibile a 'identificare -formato"% [w] x% [h] "'? – mark

+0

Penso che non lo sia, @mark. Non riesco a immaginare che nel 2009 il '% w' e'% h' non fossero ancora supportati. Ma se 'fx:' ha qualche effetto collaterale, allora suppongo che avrei menzionato anche questo. Strano. Farò dei test ... – Arjan

0

Se si specifica l'opzione -verbose, convertire le stampe:

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

Non sono sicuro che con il formato %w e %h. Mentre Photoshop dice che la mia immagine è 2678x3318 (e mi fido di Photoshop), identify mi dà:

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

(così fa [fx: w] e [fx: h])

ho dovuto usare

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

non so cosa sta succedendo qui, ma si può vedere entrambi i valori sullo standard output (dove la larghezza e l'altezza prima l'=> sono quelli corretti)

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 dice% w è la larghezza corrente e% [width] è originale larghezza. Confondere.

%w e %h potrebbero essere corretti per la maggior parte degli usi, ma non per tutte le immagini.

Problemi correlati