Kako optimizirati i komprimirati JPEG ili PNG slike u Linux komandnoj liniji


Imate puno slika i želite optimizirati i komprimirati slike bez gubitka originalnog kvaliteta prije nego što ih otpremite u bilo koji oblak ili lokalnu pohranu? Postoji mnogo dostupnih GUI aplikacija koje će vam pomoći da optimizirate slike. Međutim, evo dva jednostavna uslužna programa komandne linije za optimizaciju slika, a to su:

  1. jpegoptim – je uslužni program za optimizaciju/komprimiranje JPEG datoteka bez gubitka kvaliteta.
  2. OptiPNG – je mali program koji optimizira PNG slike na manju veličinu bez gubitka informacija.

Koristeći ova dva alata, možete optimizirati jednu ili više slika u isto vrijeme.

Komprimirajte ili optimizirajte JPEG slike iz komandne linije

jpegoptim je alat komandne linije koji se može koristiti za optimizaciju i kompresiju JPEG, JPG i JFIF datoteka bez gubitka stvarnog kvaliteta. Ovaj alat podržava optimizaciju bez gubitaka, koja se zasniva na optimizaciji Huffmanovih tabela.

Instalirajte jpegoptim u Linux

Da instalirate jpegoptim na vašim Linux sistemima, pokrenite sljedeću naredbu sa vašeg terminala.

Na Debianu i njegovim derivatima
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
Na RedHat sistemima

Na RPM baziranim sistemima kao što su RHEL, CentOS, Fedora itd., morate instalirati i omogućiti EPEL spremište ili alternativno, možete instalirati epel spremište direktno iz komandne linije kao što je prikazano:

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

Zatim instalirajte jpegoptim program iz spremišta kao što je prikazano:

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

Kako koristiti Jpegoptim Image Optimizer

Sintaksa jpegoptm-a je:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Komprimirajmo sljedeću tecmint.jpeg sliku, ali prije optimizacije slike, prvo saznajte stvarnu veličinu slike pomoću naredbe du kao što je prikazano.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Ovdje je stvarna veličina datoteke 6.2MB, sada komprimirajte ovu datoteku pokretanjem:

jpegoptim tecmint.jpeg 

Otvorite komprimiranu sliku u bilo kojoj aplikaciji za pregled slika, nećete naći nikakve velike razlike. Izvorne i komprimirane slike će imati isti kvalitet.

Gornja naredba optimizira slike do najveće moguće veličine. Međutim, možete komprimirati datu sliku na određenu veličinu, ali to onemogućuje optimizaciju bez gubitaka.

Na primjer, komprimirajmo sliku iznad sa 5.6MB na oko 250k.

jpegoptim --size=250k tecmint.jpeg

Batch JPEG kompresija i optimizacija slike

Možda ćete pitati kako komprimirati slike u cijelom direktoriju, to također nije teško. Idite u direktorij u kojem imate slike.

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

Zatim pokrenite sljedeću naredbu da komprimirate sve slike odjednom.

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.

Također možete komprimirati više odabranih slika odjednom:

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

Za više detalja o alatu jpegoptim, pogledajte man stranice.

man jpegoptim 

Komprimirajte ili optimizirajte PNG slike iz komandne linije

OptiPNG je alat komandne linije koji se koristi za optimizaciju i kompresiju PNG (prijenosne mrežne grafike) datoteka bez gubitka originalnog kvaliteta.

Instalacija i upotreba OptiPNG-a je vrlo slična jpegoptimu.

Instalirajte OptiPNG u Linux

Da instalirate OptiPNG na vašim Linux sistemima, pokrenite sljedeću naredbu sa vašeg terminala.

Na Debianu i njegovim derivatima
apt-get install optipng
or
sudo apt-get install optipng
Na RedHat sistemima
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Napomena: Morate imati omogućeno epel spremište na vašim RHEL/CentOS sistemima da instalirate optipng program.

Kako koristiti OptiPNG Image Optimizer

Opća sintaksa optipng je:

optipng filename.png
optipng [options] filename.png

Komprimirajmo sliku tecmint.png, ali prije optimizacije prvo provjerimo stvarnu veličinu slike kao što je prikazano:

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

Ovdje je stvarna veličina datoteke gornje slike 350K, sada komprimirajte ovu datoteku pokretanjem:

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)

Kao što vidite u gornjem izlazu, veličina datoteke tecmint.png je smanjena do 30,39%. Sada ponovo provjerite veličinu datoteke koristeći:

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

Otvorite komprimiranu sliku u bilo kojoj aplikaciji za pregled slika, nećete pronaći velike razlike između originalnih i komprimiranih datoteka. Izvorne i komprimirane slike će imati isti kvalitet.

Batch PNG kompresija i optimizacija slike

Za komprimiranje serije ili više PNG slika odjednom, samo idite u direktorij u kojem se nalaze sve slike i pokrenite sljedeću naredbu za komprimiranje.

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

Za više detalja o optipng provjerite man stranice.

man optipng

Zaključak

Ako ste webmaster i želite servirati optimizirane slike preko svoje web stranice ili bloga, ovi alati mogu biti vrlo zgodni. Ovi alati ne samo da štede prostor na disku, već i smanjuju propusni opseg prilikom učitavanja slika.

Ako znate neki drugi bolji način da postignete istu stvar, javite nam putem komentara i ne zaboravite podijeliti ovaj članak na svojim društvenim mrežama i podržite nas.