kompresja i naprawa plkiów .jpg

Poradnik: Kompresja i Naprawa Plików JPEG w Linuxie

Wprowadzenie

Jeśli pracujesz z dużymi ilościami plików JPEG i chcesz je skompresować, zachowując jak najwyższą jakość, ten poradnik pomoże Ci w tym zadaniu. Dodatkowo, pokażemy jak naprawić uszkodzone pliki JPEG, które mogą wystąpić w trakcie pracy. Poniżej znajdują się dwie metody: jedna za pomocą skryptu bash, a druga za pomocą pojedynczych komend linii poleceń.

Kompresja i Naprawa Plików JPEG - Skrypt Bash

Skrypt Bash do Kompresji i Naprawy

Skrypt poniżej przeprowadza kompresję plików JPEG, a także próbuje naprawić uszkodzone pliki. Korzysta z narzędzi convert dostępnego w pakiecie ImageMagick.

bash
Skopiuj kod
#!/bin/bash # Funkcja do naprawy uszkodzonych plików JPEG repair_jpeg() { local file="$1" # Próbujemy naprawić plik przez konwersję do formatu PPM i z powrotem convert "$file" "${file%.jpg}.ppm" 2>> error.log && \ convert "${file%.jpg}.ppm" "$file" 2>> error.log && \ rm "${file%.jpg}.ppm" } # Przetwarzanie wszystkich plików JPEG w bieżącym katalogu i jego podkatalogach find . -type f \( -name "*.jpg" -o -name "*.jpeg" \) | head -n 100 | while read -r file; do # Sprawdzanie i naprawa uszkodzonych plików if ! convert "$file" -resize 1x1 /dev/null 2>> error.log; then echo "Plik uszkodzony: $file. Próbuję naprawić..." >> error.log repair_jpeg "$file" fi # Po naprawie lub jeśli plik był poprawny, wykonujemy kompresję if convert "$file" -resize 1x1 /dev/null 2>> error.log; then convert "$file" -quality 100 "$file" 2>> error.log else echo "Naprawa się nie powiodła dla pliku: $file" >> error.log fi done echo "Przetwarzanie zakończone."

Instrukcja użycia:

  1. Skopiuj powyższy kod do pliku, np. compress_and_repair.sh.
  2. Nadaj plikowi uprawnienia do wykonywania:
    bash
    Skopiuj kod
    chmod +x compress_and_repair.sh
  3. Uruchom skrypt w katalogu z plikami JPEG:
    bash
    Skopiuj kod
    ./compress_and_repair.sh

Kompresja i Naprawa Plików JPEG - Linie Poleceń

Opcja 1: Kompresja i Naprawa

Używając poniższych komend, możesz bezpośrednio z linii poleceń skompresować i naprawić pliki JPEG:

bash
Skopiuj kod
find . -type f \( -name "*.jpg" -o -name "*.jpeg" \) | head -n 100 | while read -r file; do # Próbujemy naprawić uszkodzone pliki poprzez konwersję do PPM i z powrotem if ! convert "$file" -resize 1x1 /dev/null 2>> error.log; then echo "Plik uszkodzony: $file. Próbuję naprawić..." >> error.log convert "$file" "${file%.jpg}.ppm" 2>> error.log && \ convert "${file%.jpg}.ppm" "$file" 2>> error.log && \ rm "${file%.jpg}.ppm" fi # Po naprawie lub jeśli plik był poprawny, wykonujemy kompresję if convert "$file" -resize 1x1 /dev/null 2>> error.log; then convert "$file" -quality 100 "$file" 2>> error.log else echo "Naprawa się nie powiodła dla pliku: $file" >> error.log fi done

Opcja 2: Tylko Kompresja

Jeśli nie potrzebujesz naprawiać uszkodzonych plików, a jedynie je skompresować, użyj poniższej komendy:

bash
Skopiuj kod
find . -type f \( -name "*.jpg" -o -name "*.jpeg" \) | head -n 100 | while read -r file; do # Sprawdzanie i kompresja plików JPEG if convert "$file" -resize 1x1 /dev/null 2>> error.log; then convert "$file" -quality 100 "$file" 2>> error.log else echo "Plik uszkodzony: $file" >> error.log fi done

Instrukcja użycia:

  1. Wklej powyższe komendy do terminala.
  2. Skontaktuj się z katalogiem zawierającym pliki JPEG.

Podsumowanie

Dzięki powyższym metodom możesz efektywnie kompresować pliki JPEG i naprawiać uszkodzone obrazy. Wybierz metodę, która najlepiej odpowiada Twoim potrzebom i możliwościom systemowym. Skrypt bash jest bardziej wszechstronny i może automatyzować cały proces, podczas gdy komendy linii poleceń są szybkie i wygodne do użycia bezpośrednio w terminalu.