Zmienić rozmiar zdjęć do określonej wartości wysokości w ImageMagick?


27

Rozejrzałem się za tym i nie mogę znaleźć łatwego do wdrożenia rozwiązania.

Obecnie pracuję nad aplikacją, która zajmuje się panoramami. Gdy wychodzą z procesu zszywania wsadowego, wymiary wynoszą średnio 18000 x 4000. Używając ImageMagick, w jaki sposób mogę przeskalować te obrazy do określonej wartości wysokości, zachowując proporcje?

Zgodnie z instrukcją convertoperacja zmienia wysokość i szerokość, zachowując ten sam współczynnik kształtu. Chciałbym umieścić w 600 i 1000 w mojej istniejącej funkcji skryptu zmiany rozmiaru i mieć zarówno zwykły widoczny obraz, jak i zmniejszony rozmiar.


IIRC używa mniejszego wymiaru jako podstawy operacji zmiany rozmiaru, tzn. Jeśli określisz coś w rodzaju 20000 x 600, użyje wysokości 600 jako podstawy do obliczenia przekonwertowanej szerokości, aby zachować proporcje. Czy wyraziłem się jasno?
devius

Czy to musi być ImageMagick? Komendy Phatch mogą być skryptowane, polecenie „fit” robi dokładnie to, czego szukasz. photobatch.wikidot.com/action-fit
Veazer

Odpowiedzi:


37

Zgodnie z dokumentacją ImageMagick proponuję użyć -geometry x600, podczas gdy x600oznacza to, że nowy obraz ma wysokość 600 pikseli przy takim samym współczynniku kształtu jak stary obraz.


Dla pojedynczego obrazu możesz uruchomić:

convert input.png -geometry x600 output.png

Jeśli wolisz przekonwertować wszystkie obrazy folderu w jednym uruchomieniu, przełącz się na to (tj. cd ~/Pictures/panoramas/) I użyj

mogrify -geometry x600 *.png

Ale bądź ostrożny, ponieważ to zastępuje oryginalne pliki obrazów . Aby tego uniknąć, możesz

  1. utwórz nowy folder ( mkdir ~/Pictures/panoramas/small)
  2. skopiuj obrazy do tego folderu ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) i
  3. edytować obrazy w tym nowym folderze ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).

1

aby zmienić rozmiar wszystkich plików w folderze, można użyć czegoś takiego

mogrify - rozmiar 800x1094! * jpg # zachowaj proporcje obrazu

--- zmień odpowiednio rozmiar i rozszerzenie


1
Nie zachowuje to proporcji obrazu źródłowego
Rob

1
@ Rob, jeśli chcesz zachować proporcje, pozostaw „!” na zewnątrz.
Erick

Dzięki @Erick, jest dość stary, ale prawdopodobnie zwróciłem uwagę, że ta odpowiedź nie odpowiada poprawnie, ponieważ OP chciał zachować proporcje. : D
Rob
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.