Wyszukiwanie w witrynie

Jak optymalizować i kompresować obrazy JPEG lub PNG w wierszu poleceń systemu Linux


Masz dużo obrazów i chcesz je zoptymalizować i skompresować bez utraty ich oryginalnej jakości przed przesłaniem ich do dowolnej chmury lub magazynu lokalnego? Dostępnych jest wiele aplikacji GUI, które pomogą Ci zoptymalizować obrazy. Jednakże, oto dwa proste narzędzia wiersza poleceń do optymalizacji obrazów i są to:

  1. jpegoptim – to narzędzie do optymalizacji/kompresji plików JPEG bez utraty jakości.
  2. OptiPNG – to mały program, który optymalizuje obrazy PNG do mniejszego rozmiaru bez utraty jakichkolwiek informacji.

Korzystając z tych dwóch narzędzi, możesz zoptymalizować pojedynczy obraz lub wiele obrazów jednocześnie.

Kompresuj lub optymalizuj obrazy JPEG z wiersza poleceń

jpegoptim to narzędzie wiersza poleceń, którego można używać do optymalizacji i kompresji plików JPEG, JPG i JFIF bez utraty ich rzeczywistej jakości. Narzędzie to wspiera optymalizację bezstratną, która opiera się na optymalizacji tablic Huffmana.

Zainstaluj jpegoptim w systemie Linux

Aby zainstalować jpegoptim w systemie Linux, uruchom następujące polecenie na terminalu.

W Debianie i jego instrumentach pochodnych
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
W systemach opartych na RedHat

W systemach opartych na RPM, takich jak RHEL, CentOS, Fedora itp., musisz zainstalować i włączyć repozytorium EPEL lub alternatywnie możesz zainstalować epel repozytorium bezpośrednio z linii poleceń, jak pokazano:

yum install epel-release
dnf install epel-release    [On Fedora 22+ versions]

Następnie zainstaluj program jpegoptim z repozytorium, jak pokazano:

yum install jpegoptim
dnf install jpegoptim    [On Fedora 22+ versions]

Jak korzystać z Optymalizatora obrazu Jpegoptim

Składnia jpegoptm jest następująca:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Skompresujmy teraz następujący obraz tecmint.jpeg, ale przed optymalizacją obrazu najpierw sprawdź rzeczywisty rozmiar obrazu za pomocą polecenia du, jak pokazano.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Tutaj rzeczywisty rozmiar pliku wynosi 6,2 MB. Teraz skompresuj ten plik, uruchamiając:

jpegoptim tecmint.jpeg 

Otwórz skompresowany obraz w dowolnej przeglądarce obrazów, nie znajdziesz żadnych większych różnic. Obrazy źródłowe i skompresowane będą miały tę samą jakość.

Powyższe polecenie optymalizuje obrazy do maksymalnego możliwego rozmiaru. Można jednak skompresować dany obraz do określonego rozmiaru, ale wyłącza to optymalizację bezstratną.

Na przykład skompresujmy powyższy obraz z 5,6 MB do około 250 KB.

jpegoptim --size=250k tecmint.jpeg

Wsadowa kompresja i optymalizacja obrazu JPEG

Możesz zapytać, jak skompresować obrazy w całym katalogu, to też nie jest trudne. Przejdź do katalogu, w którym masz obrazy.

tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ ls -l
total 65184
-rwxr----- 1 tecmint tecmint 6680532 Jan 19 12:21 DSC_0310.JPG
-rwxr----- 1 tecmint tecmint 6846248 Jan 19 12:21 DSC_0311.JPG
-rwxr----- 1 tecmint tecmint 7174430 Jan 19 12:21 DSC_0312.JPG
-rwxr----- 1 tecmint tecmint 6514309 Jan 19 12:21 DSC_0313.JPG
-rwxr----- 1 tecmint tecmint 6755589 Jan 19 12:21 DSC_0314.JPG
-rwxr----- 1 tecmint tecmint 6789763 Jan 19 12:21 DSC_0315.JPG
-rwxr----- 1 tecmint tecmint 6958387 Jan 19 12:21 DSC_0316.JPG
-rwxr----- 1 tecmint tecmint 6463855 Jan 19 12:21 DSC_0317.JPG
-rwxr----- 1 tecmint tecmint 6614855 Jan 19 12:21 DSC_0318.JPG
-rwxr----- 1 tecmint tecmint 5931738 Jan 19 12:21 DSC_0319.JPG

A następnie uruchom następujące polecenie, aby skompresować wszystkie obrazy na raz.

tecmint@tecmint ~/img $ jpegoptim *.JPG
DSC_0310.JPG 6000x4000 24bit N Exif  [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif  [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif  [OK] 7174430 --> 6536500 bytes (8.89%), optimized.
DSC_0313.JPG 6000x4000 24bit N Exif  [OK] 6514309 --> 5909840 bytes (9.28%), optimized.
DSC_0314.JPG 6000x4000 24bit N Exif  [OK] 6755589 --> 6144165 bytes (9.05%), optimized.
DSC_0315.JPG 6000x4000 24bit N Exif  [OK] 6789763 --> 6090645 bytes (10.30%), optimized.
DSC_0316.JPG 6000x4000 24bit N Exif  [OK] 6958387 --> 6354320 bytes (8.68%), optimized.
DSC_0317.JPG 6000x4000 24bit N Exif  [OK] 6463855 --> 5909298 bytes (8.58%), optimized.
DSC_0318.JPG 6000x4000 24bit N Exif  [OK] 6614855 --> 6016006 bytes (9.05%), optimized.
DSC_0319.JPG 6000x4000 24bit N Exif  [OK] 5931738 --> 5337023 bytes (10.03%), optimized.

Możesz także skompresować wiele wybranych obrazów jednocześnie:

$ jpegoptim DSC_0310.JPG DSC_0311.JPG DSC_0312.JPG 
DSC_0310.JPG 6000x4000 24bit N Exif  [OK] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC_0311.JPG 6000x4000 24bit N Exif  [OK] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC_0312.JPG 6000x4000 24bit N Exif  [OK] 7174430 --> 6536500 bytes (8.89%), optimized.

Aby uzyskać więcej informacji na temat narzędzia jpegoptim, sprawdź strony podręcznika.

man jpegoptim 

Kompresuj lub optymalizuj obrazy PNG z wiersza poleceń

OptiPNG to narzędzie wiersza poleceń służące do optymalizacji i kompresji plików PNG (przenośna grafika sieciowa) bez utraty ich oryginalnej jakości.

Instalacja i użytkowanie OptiPNG jest bardzo podobna do jpegoptim.

Zainstaluj OptiPNG w systemie Linux

Aby zainstalować OptiPNG w systemach Linux, uruchom następujące polecenie na swoim terminalu.

W Debianie i jego instrumentach pochodnych
apt-get install optipng
or
sudo apt-get install optipng
W systemach opartych na RedHat
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Uwaga: aby zainstalować optipng, musisz mieć włączone repozytorium Epel w swoich systemach opartych na RHEL/CentOS programu.

Jak korzystać z Optymalizatora obrazu OptiPNG

Ogólna składnia optipng jest następująca:

optipng filename.png
optipng [options] filename.png

Skompresujmy obraz tecmint.png, ale przed optymalizacją najpierw sprawdź rzeczywisty rozmiar obrazu, jak pokazano:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw------- 1 tecmint tecmint 350K Jan 19 12:54 tecmint.png

Tutaj rzeczywisty rozmiar pliku powyższego obrazu wynosi 350 KB, teraz skompresuj ten plik, uruchamiając:

tecmint@tecmint ~/img $ optipng tecmint.png 
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.

** Processing: tecmint.png
1493x914 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 357525 bytes
Input file size = 358098 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 249211

Output IDAT size = 249211 bytes (108314 bytes decrease)
Output file size = 249268 bytes (108830 bytes = 30.39% decrease)

Jak widać na powyższych wynikach, rozmiar pliku tecmint.png został zmniejszony do 30,39%. Teraz ponownie sprawdź rozmiar pliku, używając:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw-r--r-- 1 tecmint tecmint 244K Jan 19 12:56 tecmint.png

Otwórz skompresowany obraz w dowolnej przeglądarce obrazów, nie znajdziesz żadnych większych różnic między plikami oryginalnymi i skompresowanymi. Obrazy źródłowe i skompresowane będą miały tę samą jakość.

Wsadowa kompresja i optymalizacja obrazu PNG

Aby skompresować wsadowo lub wiele obrazów PNG na raz, po prostu przejdź do katalogu, w którym znajdują się wszystkie obrazy i uruchom następujące polecenie, aby skompresować.

tecmint@tecmint ~ $ cd img/
tecmint@tecmint ~/img $ optipng *.png

OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.

** Processing: Debian-8.png
720x345 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 95151 bytes
Input file size = 95429 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388
                               
Selecting parameters:
  zc = 9  zm = 8  zs = 0  f = 0		IDAT size = 81388

Output IDAT size = 81388 bytes (13763 bytes decrease)
Output file size = 81642 bytes (13787 bytes = 14.45% decrease)

** Processing: Fedora-22.png
720x345 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 259678 bytes
Input file size = 260053 bytes

Trying:
  zc = 9  zm = 8  zs = 0  f = 5		IDAT size = 222479
  zc = 9  zm = 8  zs = 1  f = 5		IDAT size = 220311
  zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744
                               
Selecting parameters:
  zc = 1  zm = 8  zs = 2  f = 5		IDAT size = 216744

Output IDAT size = 216744 bytes (42934 bytes decrease)
Output file size = 217035 bytes (43018 bytes = 16.54% decrease)
....

Więcej szczegółów na temat optipng znajdziesz na stronach podręcznika.

man optipng

Wniosek

Jeśli jesteś webmasterem i chcesz wyświetlać zoptymalizowane obrazy w swojej witrynie lub blogu, narzędzia te mogą być bardzo przydatne. Narzędzia te nie tylko oszczędzają miejsce na dysku, ale także zmniejszają przepustowość podczas przesyłania obrazów.

Jeśli znasz inny lepszy sposób na osiągnięcie tego samego, daj nam znać w komentarzach i nie zapomnij udostępnić tego artykułu w swoich sieciach społecznościowych i wesprzyj nas.