Jak zautomatyzować kompresję obrazów za pomocą Bash i ImageMagick

Jak poradziłem sobie z ponad 1 TB zdjęć?

Przy dużych projektach IT, takich jak katalogowanie zdjęć czy archiwizacja danych, zarządzanie przestrzenią dyskową staje się kluczowe. Stanąłem przed wyzwaniem zoptymalizowania ponad 1 TB obrazów, które były rozproszone w licznych katalogach i podkatalogach. Rozwiązaniem okazał się prosty skrypt Bash wykorzystujący narzędzie ImageMagick

  1. Instalacja ImageMagick

Aby rozpocząć, potrzebujesz narzędzia ImageMagick, które jest łatwe do zainstalowania i oferuje zaawansowane funkcje przetwarzania obrazów.

sudo apt-get install imagemagick

2. Skrypt Bash do automatycznej kompresji

Poniżej znajdziesz gotowy do użycia skrypt, który:

  • Zmniejsza rozdzielczość obrazów do 80% oryginalnej.
  • Przechodzi przez katalog główny i podkatalogi.
  • Kompresuje obrazy, ustawiając jakość na 85%.
#!/bin/bash

# Ścieżka do katalogu głównego
BASE_DIRECTORY="/ścieżka/do/katalogu/Zdjecia/"
# Jakość kompresji (85%)
QUALITY=85
# Rozdzielczość jako procent oryginalnej (80%)
RESIZE_PERCENT=80%

# Funkcja kompresji zdjęć
compress_image() {
  local file="$1"
  # Zmniejszenie rozdzielczości i kompresja
  convert "$file" -resize "$RESIZE_PERCENT" -quality "$QUALITY" "$file"
    echo "Skompresowano: $file"
}

# Przejście przez katalogi i kompresja zdjęć
find "$BASE_DIRECTORY" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) | while read file; do
  compress_image "$file"
done

Wyjaśnienie parametrów skryptu


QUALITY=85 – Ustawia jakość JPEG na 85%. To dobry balans między jakością a wielkością pliku.
RESIZE_PERCENT=80% – Zmniejsza rozdzielczość obrazów do 80% oryginalnej, co przyspiesza ładowanie plików.
convert -resize – Narzędzie ImageMagick optymalizuje rozmiar i jakość obrazów.

Uruchomienie skryptu w tle

Dla dużych zestawów danych warto uruchomić skrypt w tle, aby nie blokować terminala. Użyj komendy:

nohup ./KompresjaKonwersjaJPG.sh &

Monitorowanie działania

Aby sprawdzić logi w czasie rzeczywistym, użyj:

tail -f nohup.out

Podsumowanie

Optymalizacja zdjęć to kluczowy krok w zarządzaniu dużymi zbiorami danych, zwłaszcza w IT. Skrypt Bash w połączeniu z ImageMagick to niezawodne i szybkie rozwiązanie. Jeśli masz dużo zdjęć do przetworzenia, ten poradnik może być dla Ciebie idealnym punktem wyjścia.

Pamiętaj, że takie narzędzia przydadzą się nie tylko w archiwizacji, ale także przy optymalizacji zasobów stron internetowych.