Vyhledávání na webu

Jak optimalizovat a komprimovat obrázky JPEG nebo PNG v příkazovém řádku Linuxu


Máte mnoho obrázků a chcete je optimalizovat a komprimovat, aniž byste ztratili původní kvalitu, než je nahrajete do jakéhokoli cloudu nebo místního úložiště? K dispozici je spousta GUI aplikací, které vám pomohou optimalizovat obrázky. Zde jsou však dva jednoduché nástroje příkazového řádku pro optimalizaci obrázků, a to:

  1. jpegoptim – je nástroj pro optimalizaci/komprimaci souborů JPEG bez ztráty kvality.
  2. OptiPNG – je malý program, který optimalizuje obrázky PNG na menší velikost bez ztráty jakýchkoli informací.

Pomocí těchto dvou nástrojů můžete optimalizovat jeden nebo více obrázků najednou.

Komprimujte nebo optimalizujte obrázky JPEG z příkazového řádku

jpegoptim je nástroj příkazového řádku, který lze použít k optimalizaci a kompresi souborů JPEG, JPG a JFIF bez ztráty skutečné kvality. Tento nástroj podporuje bezeztrátovou optimalizaci, která je založena na optimalizaci Huffmanových tabulek.

Nainstalujte jpegoptim v Linuxu

Chcete-li nainstalovat jpegoptim do systémů Linux, spusťte z terminálu následující příkaz.

Na Debianu a jeho derivátech
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
Na systémech založených na RedHat

Na systémech založených na RPM, jako je RHEL, CentOS, Fedora atd., musíte nainstalovat a povolit úložiště EPEL nebo alternativně můžete nainstalovat epel úložiště přímo z příkazového řádku, jak je znázorněno:

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

Dále nainstalujte program jpegoptim z úložiště, jak je znázorněno:

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

Jak používat Jpegoptim Image Optimizer

Syntaxe jpegoptm je:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Nyní zkomprimujme následující obrázek tecmint.jpeg, ale před optimalizací obrázku nejprve zjistěte skutečnou velikost obrázku pomocí příkazu du, jak je znázorněno.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Zde je skutečná velikost souboru 6,2 MB, nyní tento soubor zkomprimujte spuštěním:

jpegoptim tecmint.jpeg 

Otevřete komprimovaný obrázek v libovolné aplikaci pro prohlížení obrázků, nenajdete žádné zásadní rozdíly. Zdrojový a komprimovaný obraz budou mít stejnou kvalitu.

Výše uvedený příkaz optimalizuje obrázky na maximální možnou velikost. Daný obrázek však můžete zkomprimovat na konkrétní velikost, ale deaktivuje to bezztrátovou optimalizaci.

Udělejme například kompresi nad obrázkem z 5,6 MB na přibližně 250 k.

jpegoptim --size=250k tecmint.jpeg

Dávková komprese a optimalizace obrázků JPEG

Můžete se zeptat, jak komprimovat obrázky v celém adresáři, to také není obtížné. Přejděte do adresáře, kde máte obrázky.

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 poté spusťte následující příkaz pro kompresi všech obrázků najednou.

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.

Můžete také komprimovat více vybraných obrázků najednou:

$ 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.

Další podrobnosti o nástroji jpegoptim najdete v manuálových stránkách.

man jpegoptim 

Komprimujte nebo optimalizujte obrázky PNG z příkazového řádku

OptiPNG je nástroj příkazového řádku používaný k optimalizaci a kompresi souborů PNG (přenosná síťová grafika) bez ztráty původní kvality.

Instalace a použití OptiPNG je velmi podobné jpegoptim.

Nainstalujte OptiPNG v Linuxu

Chcete-li nainstalovat OptiPNG na systémy Linux, spusťte z terminálu následující příkaz.

Na Debianu a jeho derivátech
apt-get install optipng
or
sudo apt-get install optipng
Na systémech založených na RedHat
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Poznámka: Chcete-li nainstalovat optipng, musíte mít na svých systémech založených na RHEL/CentOS povoleno úložiště epel program.

Jak používat OptiPNG Image Optimizer

Obecná syntaxe optipng je:

optipng filename.png
optipng [options] filename.png

Zkomprimujme obrázek tecmint.png, ale před optimalizací nejprve zkontrolujte skutečnou velikost obrázku, jak je znázorněno:

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

Zde je skutečná velikost souboru výše uvedeného obrázku 350 kB, nyní tento soubor zkomprimujte spuštěním:

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 vidíte na výše uvedeném výstupu, velikost souboru tecmint.png byla zmenšena až na 30,39 %. Nyní znovu ověřte velikost souboru pomocí:

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

Otevřete komprimovaný obrázek v libovolné aplikaci pro prohlížení obrázků, nenajdete žádné velké rozdíly mezi původními a komprimovanými soubory. Zdrojový a komprimovaný obraz budou mít stejnou kvalitu.

Dávková komprese a optimalizace obrázků PNG

Chcete-li komprimovat dávku nebo více obrázků PNG najednou, přejděte do adresáře, kde jsou všechny obrázky, a spusťte následující příkaz pro komprimaci.

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)
....

Další podrobnosti o optimalizaci naleznete na manuálových stránkách.

man optipng

Závěr

Pokud jste webmaster a chcete na svém webu nebo blogu poskytovat optimalizované obrázky, mohou být tyto nástroje velmi užitečné. Tyto nástroje nejen šetří místo na disku, ale také snižují šířku pásma při nahrávání obrázků.

Pokud znáte jiný lepší způsob, jak dosáhnout stejné věci, dejte nám vědět prostřednictvím komentářů a nezapomeňte tento článek sdílet na svých sociálních sítích a podpořit nás.