Ridimensionare le immagini ad un valore di altezza specifico in ImageMagick?


27

Ho cercato questo e non riesco a trovare una soluzione facilmente implementabile.

Attualmente sto lavorando ad un'applicazione che si occupa di panorami. Man mano che escono dal processo di punti batch, le dimensioni sono in media 18000x4000. Utilizzando ImageMagick, come posso ridimensionare quelle immagini a un valore di altezza specifico mantenendo le proporzioni?

Secondo il manuale, l' convertoperazione richiede sia l'altezza che la larghezza per ridimensionare mantenendo le stesse proporzioni. Quello che mi piacerebbe inserire 600 e 1000 nella mia funzione di script di ridimensionamento esistente e avere sia un'immagine visualizzabile normale che una dimensione ridotta.


IIRC utilizza la dimensione più piccola come base per l'operazione di ridimensionamento, ovvero se si specifica qualcosa come 20000x600 utilizzerà l'altezza 600 come base per calcolare la larghezza convertita in modo da mantenere le proporzioni. Mi sono chiarito?
devius,

Deve essere ImageMagick? I comandi di Phatch possono essere copiati, il comando 'fit' fa esattamente quello che stai cercando. photobatch.wikidot.com/action-fit
Veazer,

Risposte:


37

Secondo la documentazione di ImageMagick, suggerisco di usare -geometry x600, mentre x600significa che la nuova immagine ha un'altezza di 600 px con le stesse proporzioni della vecchia immagine.


Per una singola immagine puoi eseguire:

convert input.png -geometry x600 output.png

Se si preferisce convertire tutte le immagini di una cartella in una corsa, passare ad essa (ad es. cd ~/Pictures/panoramas/) E utilizzare

mogrify -geometry x600 *.png

Ma fai attenzione, perché sovrascrive i file di immagine originali . Per evitare che tu potessi

  1. crea una nuova cartella ( mkdir ~/Pictures/panoramas/small)
  2. copia le immagini in questa cartella ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) e
  3. modifica le immagini in questa nuova cartella ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).

1

per ridimensionare tutti i file in una cartella, è possibile utilizzare qualcosa di simile

mogrify -resize 800x1094! * jpg # mantiene le proporzioni dell'immagine

--- modificare le dimensioni e l'estensione come appropriato


1
Ciò non mantiene le proporzioni dell'immagine sorgente
Rob

1
@Rob se vuoi mantenere le proporzioni lascia il "!" su.
Erick,

Grazie @Erick, è piuttosto vecchio ma probabilmente stavo sottolineando che questa risposta non risponde correttamente poiché l'OP ha voluto mantenere le proporzioni. : D
Rob,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.