2011-12-05 1 views
11

Voglio ridimensionare un'immagine fino ad un massimo di width. Quindi non mi interessa l'altezza dell'immagine, ma voglio semplicemente ridimensionarla sempre ad una larghezza specifica.ImageMagick - Ridimensiona alla larghezza massima

Sono certo di averlo fatto prima di non ricordare come l'ho fatto ora.

risposta

29

Sembra che questo è il modo in cui è fatto, notando che la larghezza è il primo parametro.

convert -resize '100' image.png 

Per chiunque altro chiedendo circa l'altezza, allora si dovrebbe fare questo:

convert -resize 'x100' image.png 

Fonte: http://www.imagemagick.org/script/command-line-processing.php

Edit (Nov 2014): Nota che nelle ultime versioni di ImageMagick non è più possibile utilizzare le virgolette attorno ai valori come da commento di Kevin Labécot.

+4

Nota se si desidera ridimensionare un gruppo di immagini sul posto (anziché creare nuovi file) è possibile utilizzare il comando 'mogrify' invece di' convert' – Eli

+2

Sembra che l'impostazione delle dimensioni utilizzando le virgolette non sia più consentita (parametro non valido). Ho dovuto rimuovere le virgolette e funziona perfettamente: 'convert -resize 100 image.png' –

+0

@ KevinLabécot Sapete quale versione di ImageMagick è stata modificata? ... se no, sai se farlo senza le virgolette ha funzionato anche nelle versioni precedenti? – Brett

3

Sei solo a caccia della matematica per calcolare le proporzioni corrette?

$new_width = 400; // config 
$image_width = 480; // loaded from image 
$image_height = 786; // loaded from image 
$new_height = $new_width * ($image_height/$image_width); 
echo "$image_width x $image_height becomes $new_width x $new_height"; 
+2

Amico, dovrebbe essere simile a questo: echo $ image_width. "X". $ Image_height. "Diventa". $ New_width. "X". $ New_height; –

+1

Le virgolette doppiano le variabili php – Scuzzy

+1

Lo so, ma le variabili dovrebbero essere separate dal codice html;) –