[LINUX] Masowa optymalizacja plików jpg i png z poziomu konsoli ssh

  • Start
  • Blog
  • [LINUX] Masowa optymalizacja plików jpg i png z poziomu konsoli ssh
22-05-2019

Mając dostęp do konsoli ssh na serwerze możemy ułatwić sobie optymalizację zdjęć wykorzystując komendy konsoli linux.

Jeżeli dysponujemy wielowątkowym systemem [kilka procesorów lub wiele rdzeni] warto wykorzystać wielowątkowość / komenda parallel lub xargs / co znacznie skróci czas wykonania, co jest szczególnie istotne przy optymalizacji zdjęć na sklepach internetowych gdzie często musimy optymalizować tysiące plików. Poniżej kilka przykładów.

wyszukuje pliki png i optymalizuje je przy pomocy optipng 

find . -type f -name '*.png' -exec optipng -o5 -quiet -preserve {} \;

wyszukuje pliki jpg/jpeg re kompresuje je komendą Mogrify - jest jednym z narzędzi dostarczanych w pakiecie ImageMagick.

find . -type f -name '*.jp*' -exec mogrify -compress jpeg -quality 70 {} \;

wyszukuje pliki jpg/jpeg i skaluje je do rozmiaru 1280x1280px 

find . -type f -iname "*.jp*g" | xargs mogrify -resize '1280x1280>'

wyszukuje pliki jpg,jpeg i optymalizuje je przy pomocy jpegoptim

find . -type f -iname "*.jp*g" | xargs jpegoptim --strip-all --max=90

 

Inne komendy z użyciem parallel co skutkuje wykorzystaniem wielu rdzeni procesora:

skalowanie wielowątkowe wszelkich plików większych niż 1280x1280 z zachowaniem proporcji mniejsze pliki będą pominięte

find . -type f -iname "*.jp*g" -print0 | parallel --progress -0 -j +0 "mogrify -resize 1280x1280\> {}"

optymalizacja wielu plików jpg z wykorzystaniem wielowątkowości

find . -type f -iname "*.jp*g" -print0 | parallel --progress -0 -j +0 "jpegoptim --strip-all --max=90 {}"

masowa optymalizacja jpg z użyciem 4 wątków -P4 za pomocą komendy xargs

find . -type f -iname "*.jp*g" -print0 | xargs -0 -n1 -P4 jpegoptim --strip-all --force --quiet --max=85 {}

masowa optymalizacja png

find . -type f -iname "*.png" -print0 | xargs -0 -n1 -P4 optipng -o5 -quiet -preserve {}

Poprzedni wpis