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.