Kā optimizēt un saspiest JPEG vai PNG attēlus Linux komandrindā


Jums ir daudz attēlu un vēlaties tos augšupielādēt jebkurā mākonī vai vietējos krātuvēs, nezaudējot sākotnējo kvalitāti, tos optimizēt un saspiest? Ir pieejamas daudzas GUI lietojumprogrammas, kas palīdzēs jums optimizēt attēlus. Tomēr šeit ir divi vienkārši komandrindas utilīti, lai optimizētu attēlus, un tie ir:

  1. jpegoptim - ir utilīta, lai optimizētu/saspiestu JPEG failus, nezaudējot kvalitāti.
  2. OptiPNG - ir maza programma, kas optimizē PNG attēlus mazākā izmērā, nezaudējot nekādu informāciju.

Izmantojot šos divus rīkus, vienlaikus var optimizēt vienu vai vairākus attēlus.

Saspiest vai optimizēt JPEG attēlus no komandrindas

jpegoptim ir komandrindas rīks, ko var izmantot, lai optimizētu un saspiestu JPEG, JPG un JFIF failus, nezaudējot tā faktisko kvalitāti. Šis rīks atbalsta bezzudumu optimizāciju, kuras pamatā ir Huffman tabulu optimizācija.

Lai instalētu jpegoptim Linux sistēmās, no sava termināļa izpildiet šādu komandu.

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

Sistēmās, kuru pamatā ir RPM, piemēram, RHEL, CentOS, Fedora utt., Jums jāinstalē un jāiespējo EPEL repozitorijs vai arī jūs varat instalēt epel repozitoriju tieši no komandrindas, kā parādīts:

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

Nākamais instalējiet jpegoptim programmu no repozitorija, kā parādīts:

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

Jpegoptm sintakse ir:

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

Tagad saspiedīsim šo tecmint.jpeg attēlu, bet pirms attēla optimizēšanas vispirms noskaidrojiet attēla faktisko izmēru, izmantojot du komandu, kā parādīts.

$ du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Faktiskais faila lielums ir 6,2 MB, tagad saspiediet šo failu, palaižot:

$ jpegoptim tecmint.jpeg 

Atveriet saspiestu attēlu jebkurā attēlu skatītāja lietojumprogrammā, jūs neatradīsit nekādas būtiskas atšķirības. Avota un saspiesto attēlu kvalitāte būs vienāda.

Iepriekš minētā komanda optimizē attēlus pēc iespējas vairāk. Tomēr jūs varat saspiest norādīto attēlu līdz noteiktam izmēram, bet tas atspējo optimizāciju bez zaudējumiem.

Piemēram, saspiedīsim virs attēla no 5,6 MB līdz aptuveni 250 KB.

$ jpegoptim --size=250k tecmint.jpeg

Jūs varētu jautāt, kā saspiest attēlus visā direktorijā, tas arī nav grūti. Dodieties uz direktoriju, kurā jums ir attēli.

[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

Pēc tam izpildiet šo komandu, lai visus attēlus saspiestu vienlaikus.

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

Varat arī saspiest vairākus atlasītos attēlus vienlaikus:

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

Lai iegūtu sīkāku informāciju par rīku jpegoptim, skatiet rokasgrāmatas.

$ man jpegoptim 

Saspiest vai optimizēt PNG attēlus no komandrindas

OptiPNG ir komandrindas rīks, ko izmanto, lai optimizētu un saspiestu PNG (portatīvās tīkla grafikas) failus, nezaudējot sākotnējo kvalitāti.

OptiPNG instalēšana un lietošana ir ļoti līdzīga jpegoptim.

Lai instalētu OptiPNG Linux sistēmās, no sava termināļa izpildiet šādu komandu.

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

Piezīme. Lai instalētu optipng programmu, jūsu RHEL/CentOS balstītajās sistēmās jābūt iespējotai epel repozitorijam.

Optipng vispārējā sintakse ir šāda:

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

Saspiedīsim attēlu tecmint.png , bet pirms optimizācijas vispirms pārbaudiet attēla faktisko izmēru, kā parādīts:

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

Šeit faktiskais augšējā attēla faila lielums ir 350 KB, tagad saspiediet šo failu, palaižot:

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

Kā redzat iepriekšminētajā izvade, faila tecmint.png lielums ir samazināts līdz 30,39%. Tagad vēlreiz pārbaudiet faila lielumu, izmantojot:

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

Atveriet saspiestu attēlu jebkurā attēlu skatītāja lietojumprogrammā, jūs neatradīsit lielas atšķirības starp oriģinālajiem un saspiestajiem failiem. Avota un saspiesto attēlu kvalitāte būs vienāda.

Lai vienlaikus saspiestu pakešu vai vairākus PNG attēlus, vienkārši dodieties uz direktoriju, kurā atrodas visi attēli, un saspiešanai izpildiet šo komandu.

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

Lai iegūtu sīkāku informāciju par optipng pārbaudiet rokasgrāmatas lapas.

$ man optipng

Secinājums

Ja esat tīmekļa pārzinis un vēlaties savā vietnē vai emuārā rādīt optimizētus attēlus, šie rīki var būt ļoti noderīgi. Šie rīki ne tikai ietaupa vietu diskā, bet arī samazina joslas platumu, vienlaikus augšupielādējot attēlus.

Ja zināt kādu citu labāku veidu, kā sasniegt to pašu, dariet mums to zināmu, izmantojot komentārus, un neaizmirstiet ar šo rakstu dalīties savos sociālajos tīklos un atbalstīt mūs.