Wyszukiwanie w witrynie

4 sposoby zbiorczej konwersji plików PNG na JPG i odwrotnie


W informatyce przetwarzanie wsadowe to wykonanie szeregu zadań w programie w sposób nieinteraktywny. W tym przewodniku znajdziesz 4 proste sposoby zbiorczej konwersji kilku obrazów .PNG na .JPG i odwrotnie, przy użyciu narzędzi wiersza poleceń systemu Linux.

We wszystkich przykładach użyjemy narzędzia wiersza poleceń convert, jednak w tym celu możesz również użyć mogrify.

Składnia użycia convert jest następująca:

convert input-option input-file output-option output-file

A dla mogrify jest:

mogrify options input-file

Uwaga: w przypadku mogrify oryginalny plik obrazu jest domyślnie zastępowany nowym plikiem obrazu, ale można temu zapobiec, używając pewnych opcji, które można znaleźć na stronie podręcznika.

Poniżej znajdują się różne sposoby zbiorczej konwersji wszystkich obrazów .PNG do formatu .JPG, jeśli chcesz przekonwertować .JPG na .PNG, możesz modyfikować polecenia zgodnie ze swoimi potrzebami.

1. Konwertuj PNG na JPG za pomocą poleceń „ls” i „xargs”.

Polecenie ls umożliwia wyświetlenie listy wszystkich obrazów png, a polecenie xargs umożliwia zbudowanie i wykonanie polecenia convert ze standardowego wejścia w celu konwersji wszystkich Obrazy .png do .jpg.

----------- Convert PNG to JPG ----------- 
ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'

----------- Convert JPG to PNG ----------- 
ls -1 *.jpg | xargs -n 1 bash -c 'convert "$0" "${0%.jpg}.png"'

Wyjaśnienie opcji użytych w powyższym poleceniu.

  1. -1 – flaga mówi ls, aby wyświetlał po jednym obrazku w każdej linii.
  2. -n – określa maksymalną liczbę argumentów, która dla przypadku wynosi 1.
  3. -c – instruuje basha, aby uruchomił podane polecenie.
  4. #36 {0%.png}.jpg – ustawia nazwę nowego skonwertowanego obrazu, znak % pomaga usunąć stare rozszerzenie pliku.

Użyłem polecenia ls -ltr, aby wyświetlić listę wszystkich plików według daty i godziny modyfikacji.

Podobnie możesz użyć powyższego polecenia, aby przekonwertować wszystkie obrazy .jpg na .png, modyfikując powyższe polecenie.

2. Konwertuj PNG na JPG za pomocą polecenia GNU „Parallel”.

GNU Parallel umożliwia użytkownikowi równoległe budowanie i wykonywanie poleceń powłoki ze standardowego wejścia. Upewnij się, że masz zainstalowany GNU Parallel w swoim systemie, w przeciwnym razie zainstaluj go, używając odpowiednich poleceń poniżej:

sudo apt-get install parallel     [On Debian/Ubuntu systems]
sudo yum install parallel         [On RHEL/CentOS and Fedora]

Po zainstalowaniu narzędzia Parallel możesz uruchomić następujące polecenie, aby przekonwertować wszystkie obrazy .png do formatu .jpg ze standardowego wejścia.

----------- Convert PNG to JPG ----------- 
parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
parallel convert '{}' '{.}.png' ::: *.jpg

Gdzie,

  1. {} – linia wejściowa będąca ciągiem zastępczym zastąpionym pełną linią odczytaną ze źródła wejściowego.
  2. {. – linia wejściowa minus rozszerzenie.
  3. ::: – określa źródło wejściowe, czyli linię poleceń dla powyższego przykładu, gdzie argumentem jest *png lub *jpg.

Alternatywnie możesz także użyć jednocześnie poleceń ls i parallel, aby wsadowo przekonwertować wszystkie obrazy, jak pokazano:

----------- Convert PNG to JPG ----------- 
ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- Convert JPG to PNG -----------
ls -1 *.jpg | parallel convert '{}' '{.}.png'

3. Konwertuj PNG na JPG za pomocą polecenia „pętla for”.

Aby uniknąć kłopotów związanych z pisaniem skryptu powłoki, możesz wykonać pętlę for z wiersza poleceń w następujący sposób:

----------- Convert PNG to JPG ----------- 
bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- Convert JPG to PNG -----------
bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

Opis każdej opcji użytej w powyższym poleceniu:

  1. -c pozwala na wykonanie instrukcji pętli for w pojedynczych cudzysłowach.
  2. Zmienna image jest licznikiem ilości obrazów w katalogu.
  3. Przy każdej operacji konwersji polecenie echo informuje użytkownika, że obraz png został przekonwertowany na format jpg i odwrotnie, w wierszu $image przekonwertowany na & #36 {image%.png}.jpg ”.
  4. „&36 {image%.png}.jpg” tworzy nazwę przekonwertowanego obrazu, gdzie % usuwa rozszerzenie starego formatu obrazu.

4. Konwertuj PNG na JPG za pomocą skryptu powłoki

Jeśli nie chcesz zabrudzić linii poleceń jak w poprzednim przykładzie, napisz mały skrypt w następujący sposób:

Uwaga: odpowiednio zamień rozszerzenia .png i .jpg jak w poniższym przykładzie w przypadku konwersji z jednego formatu do innego.

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

Zapisz go jako convert.sh i spraw, aby skrypt był wykonywalny, a następnie uruchom go z katalogu zawierającego Twoje obrazy.

chmod +x convert.sh
./convert.sh

Podsumowując, omówiliśmy kilka ważnych sposobów zbiorczej konwersji obrazów .png do formatu .jpg i odwrotnie. Jeśli chcesz zoptymalizować obrazy, możesz zapoznać się z naszym przewodnikiem, który pokazuje, jak kompresować obrazy png i jpg w systemie Linux.

Możesz także udostępnić nam dowolne inne metody, w tym narzędzia wiersza poleceń systemu Linux do konwersji obrazów z jednego formatu na inny na terminalu, lub zadać pytanie w sekcji komentarzy poniżej.