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.
# 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:
- Skopiuj powyższy kod do pliku, np.
compress_and_repair.sh. - Nadaj plikowi uprawnienia do wykonywania:
bashSkopiuj kod
chmod +x compress_and_repair.sh - Uruchom skrypt w katalogu z plikami JPEG:
bashSkopiuj 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:
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:
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:
- Wklej powyższe komendy do terminala.
- 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.