Stavo seguendo questo esempio http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick, ed è esattamente ciò che voglio fare con l'immagine, con l'eccezione di avere gli avanzi di sfondo (cioè i bordi bianchi). C'è un modo per farlo e forse ritagliare lo sfondo bianco? c'è un altro modo per fare ciò? La ridimensionamento deve essere proporzionale, quindi non voglio solo impostare un limite di ridimensionamento della larghezza o un limite di altezza, ma ridimensionare proporzionalmente l'immagine.ImageMagick: Come ridimensionare proporzionalmente con mogrify senza sfondo
risposta
L'esempio si collega agli usi questo comando:
mogrify \
-resize 80x80 \
-background white \
-gravity center \
-extent 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
In primo luogo, mogrify
è un po 'pericoloso. Manipola gli originali in linea e sovrascrive gli originali. Se qualcosa va storto, hai perso gli originali e ti sei bloccato con i risultati errati. Nel tuo caso la -path thumbs
però allevia questo pericolo, perché si assicura i risultati verranno scritti directory sub pollici
Un altro comando ImageMagick, convert
, può mantenere gli originali e fare la stessa manipolazione come mogrify
:
convert \
input.jpg \
-resize 80x80 \
-background white \
-gravity center \
-extent 80x80 \
-quality 75 \
thumbs/output.jpg
Se vuole lo stesso risultato , ma non solo le estensioni bianca tela (originariamente aggiunto per rendere l'immagine un quadrato 80x80 risultato), tralasciando il parametro -extent 80x80
(la -background white
e gravity center
un re superfluo troppo):
convert \
input.jpg \
-resize 80x80 \
-quality 75 \
thumbs/output.jpg
o
mogrify \
-resize 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
So che questo è un vecchio thread, ma utilizzando il flag -write con la bandiera-set, si può scrivere su file nella stessa directory senza sovrascrivere i file originali:
mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg
Come osservato al http://imagemagick.org/script/escape.php,% t è il nome del file senza estensione e il% e è l'estensione. Quindi l'output di image.jpg sarebbe una miniatura image_small.jpg.
Questo è il comando che utilizzo ogni volta che desidero ridimensionare in batch tutto a 1920x e mantenere le proporzioni.
mogrify -path. -risposta 1920x1920 -formato "_resized.jpg" -qualità 70 * .jpg
In realtà '-resize 1920x1920' mantiene le proporzioni, risultando in' max (larghezza, altezza) 'pari a 1920. –
Grazie, Kurt, affronterò il problema mogrify. Non ero molto sicuro di quale fosse la differenza tra esso e la conversione, ma in realtà ho impostato il -path per ogni evenienza. Certamente non volevo sovrascrivere i file immagine master. – cj5