Zmiana rozmiaru obrazów za pomocą skryptów z ImageMagik

Automatyczne skalowanie obrazów w celu dopasowania do statycznych stron internetowych

Page content

Mainroad w Hugo nie zmienia automatycznie rozmiaru obrazów,
tylko kopiuje je z folderu static.
Zatem musimy przygotować skrypt do zmiany rozmiaru i przycięcia obrazów do odpowiedniego rozmiaru.

678x495 czarodziej

Kiedy

Mam kilka źródeł obrazów – telefon komórkowy i kamera są najczęściej używane.
Są one o różnych rozdzielczościach i proporcjach.

Zatem potrzebujemy sekwencji przetwarzania:

  • centralne przycięcie do proporcji
  • zmiana rozmiaru (skalowanie) do dwóch rozdzielczości. Jakość JPEG – 80% wystarczy.
    • 235x171
    • 678x495

Gdzie

Załóżmy, że obrazy źródłowe są w folderze ~/tmp/img_src
Musimy:

  • przenieść wynikowe obrazy do folderów ~/tmp/img_235x171 i ~/tmp/img_678x495
  • nazwać obrazy tak, jak _235x171.jpg i _678x495.jpg

Jak

W systemie Ubuntu Linux użyjemy imagemagick

sudo apt-get install imagemagick

Krok przycięcia:

convert wizard.png -gravity center -extent 11:8 wizarc.jpg
# teraz sprawdź geometrię
identify wizard.png wizarc.jpg

Krok skalowania

convert wizarc.jpg -resize 678x495 -quality 80 -interlace plane wizarc_678x495.jpg
convert wizarc.jpg -resize 235x171 -quality 80 -interlace plane wizarc_235x171.jpg
# teraz sprawdź geometrię
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

80 to jakość JPEG, a plane oznacza postępowy JPEG.
Pomoże to w szybszym ładowaniu obrazów na wolnych połączeniach,
nie tylko dlatego, że najpierw zostanie załadowany miniaturka, ale też sam plik jest mniejszy. Przynajmniej w przypadku czarodzieja.

Z ramkami

convert wizarc.jpg -resize 676x493 -quality 80 -interlace plane -border 1x1 wizarc_678x495.jpg
convert wizarc.jpg -resize 233x169 -quality 80 -interlace plane -border 1x1 wizarc_235x171.jpg
# teraz sprawdź geometrię
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

Obraz wynikowy, który widzisz na początku tego posta, oraz proporcje obrazu źródłowego wyglądały tak:

20% czarodzieja

to po prostym skalowaniu i dodaniu ramki

convert wizard.png -resize 20% -quality 85 -interlace plane -border 2x2 wizard20.jpg

Inne opcje

nautilus-image-converter

nautilus-image-converter to rozszerzenie nautilus do masowego skalowania lub obracania obrazów. Aby zainstalować nautilus-image-converter w wszystkich obecnie obsługiwanych wersjach Ubuntu otwórz terminal i wpisz:

sudo apt-get install nautilus-image-converter

Dodaje dwa elementy menu kontekstowego w nautilus, dzięki czemu możesz kliknąć prawym przyciskiem i wybrać “Zmień rozmiar obrazu”. (Drugim jest “Obróć obraz”).

Możesz przetworzyć całą całą katalog obrazów w jednym kroku, a nawet nie musisz otwierać żadnego programu.

Musisz ponownie uruchomić nautilus, aby zobaczyć nowe menu kontekstowe, uruchom

nautilus -q

a następnie kliknij ikonę folderu domowego, aby ponownie załadować nautilus z nowym wtyczką.

mogrify

Polecenie mogrify nadpisuje oryginalne pliki obrazów zmienionymi rozmiarami:

mogrify -resize 50% *.png # zachowuje proporcje obrazu mogrify -resize 320x240 *.png # zachowuje proporcje obrazu mogrify -resize 320x240! *.png # nie zachowuje proporcji obrazu mogrify -resize x240 *.png # nie zachowuje proporcji obrazu mogrify -resize 320x *.png # nie zachowuje proporcji obrazu

Inne przydatne narzędzia

Pobierz metadane obrazu – takie jak rozdzielczość, głębia bitowa itp. – część pakietu imagemagick.

identify image.jpg 

zwróci coś takiego jak

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

Konwertowanie obrazów do PDF

convert $(ls -v *.jpg) foobar.pdf
convert $(ls -v *.png) foobar.pdf

Przydatne linki