Kako optimizirati in stisniti slike JPEG ali PNG v ukazni vrstici Linuxa


Imate veliko slik in jih želite optimizirati in stisniti, ne da bi pri tem izgubili njihovo prvotno kakovost, preden jih naložite v katero koli oblačno ali lokalno shrambo? Na voljo je veliko GUI aplikacij, ki vam bodo pomagale optimizirati slike. Vendar sta tukaj dva preprosta pripomočka za ukazno vrstico za optimizacijo slik:

  1. jpegoptim - je pripomoček za optimizacijo/stiskanje datotek JPEG brez izgube kakovosti.
  2. OptiPNG - je majhen program, ki slike PNG PNG optimizira na manjše velikosti, ne da bi izgubil informacije.

Z uporabo teh dveh orodij lahko hkrati optimizirate eno ali več slik.

Stisnite ali optimizirajte slike JPEG iz ukazne vrstice

jpegoptim je orodje ukazne vrstice, ki ga lahko uporabimo za optimizacijo in stiskanje datotek JPEG, JPG in JFIF, ne da bi pri tem izgubili svojo dejansko kakovost. To orodje podpira optimizacijo brez izgub, ki temelji na optimizaciji Huffmanovih tabel.

Če želite v svoje sisteme Linux namestiti jpegoptim, na terminalu zaženite naslednji ukaz.

# apt-get install jpegoptim
or
$ sudo apt-get install jpegoptim

V sistemih, ki temeljijo na RPM, kot so RHEL, CentOS, Fedora itd., Morate namestiti in omogočiti repozitorij EPEL ali pa lahko repel v epel namestite neposredno iz ukazne vrstice, kot je prikazano:

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

Nato namestite program jpegoptim iz repozitorija, kot je prikazano:

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

Sintaksa jpegoptm je:

$ jpegoptim filename.jpeg
$ jpegoptim [options] filename.jpeg

Zdaj stisnimo naslednjo sliko tecmint.jpeg , vendar preden jo optimiziramo, najprej z ukazom du ugotovimo dejansko velikost slike, kot je prikazano.

$ du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Tu je dejanska velikost datoteke 6,2 MB, zdaj jo stisnite tako, da zaženete:

$ jpegoptim tecmint.jpeg 

Odprite stisnjeno sliko v kateri koli aplikaciji za pregledovanje slik, ne boste našli večjih razlik. Izvorne in stisnjene slike bodo enake kakovosti.

Zgornji ukaz slike optimizira na največjo možno velikost. Lahko pa dano sliko stisnete v določeno velikost, vendar onemogoči optimizacijo brez izgub.

Na primer, stisnimo nad sliko s 5,6 MB na približno 250 k.

$ jpegoptim --size=250k tecmint.jpeg

Lahko vprašate, kako stisnete slike v celotnem imeniku, tudi to ni težko. Pojdite v imenik, kjer imate slike.

[email  ~ $ cd img/
[email  ~/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

Nato zaženite naslednji ukaz, da stisnete vse slike hkrati.

[email  ~/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.

Hkrati lahko stisnete tudi več izbranih slik:

$ 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 več podrobnosti o orodju jpegoptim si oglejte strani z navodili.

$ man jpegoptim 

Stisnite ali optimizirajte slike PNG iz ukazne vrstice

OptiPNG je orodje ukazne vrstice, ki se uporablja za optimizacijo in stiskanje datotek PNG (prenosne omrežne grafike) brez izgube prvotne kakovosti.

Namestitev in uporaba OptiPNG je zelo podobna jpegoptim.

Če želite namestiti OptiPNG v vaše sisteme Linux, zaženite naslednji ukaz iz terminala.

# apt-get install optipng
or
$ sudo apt-get install optipng
# yum install optipng
# dnf install optipng    [On Fedora 22+ versions]

Opomba: Za namestitev programa optipng morate imeti v svojih sistemih, ki temeljijo na RHEL/CentOS, omogočeno repozitorij epel.

Splošna sintaksa optipng je:

$ optipng filename.png
$ optipng [options] filename.png

Stisnite sliko tecmint.png , vendar pred optimizacijo najprej preverite dejansko velikost slike, kot je prikazano:

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

Tu je dejanska velikost zgornje slike 350K, zdaj stisnite to datoteko tako, da zaženete:

[email  ~/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)

Kot vidite v zgornjem izhodu, je bila velikost datoteke tecmint.png zmanjšana na 30,39%. Zdaj znova preverite velikost datoteke z uporabo:

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

Odprite stisnjeno sliko v kateri koli aplikaciji za pregledovanje slik, ne boste našli večjih razlik med izvirno in stisnjeno datoteko. Izvorne in stisnjene slike bodo enake kakovosti.

Če želite stisniti paketne ali več slik PNG naenkrat, preprosto pojdite v imenik, v katerem so vse slike, in za stiskanje zaženite naslednji ukaz.

[email  ~ $ cd img/
[email  ~/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 več podrobnosti o optipng preverite strani z man.

$ man optipng

Zaključek

Če ste spletni skrbnik in želite na svojem spletnem mestu ali spletnem dnevniku prikazovati optimizirane slike, so lahko ta orodja zelo priročna. Ta orodja ne prihranijo le prostora na disku, temveč tudi zmanjšajo pasovno širino med nalaganjem slik.

Če poznate kakšen drug boljši način za dosego istega, nam to sporočite s komentarji in ne pozabite deliti tega članka na svojih socialnih omrežjih in nas podpirati.