Kaip optimizuoti ir suspausti JPEG arba PNG vaizdus „Linux“ komandinėje eilutėje


Turite daug vaizdų ir norite optimizuoti bei suglaudinti vaizdus neprarasdami pradinės kokybės prieš įkeldami juos į debesį ar vietines saugyklas? Yra daug GUI programų, kurios padės optimizuoti vaizdus. Tačiau čia yra dvi paprastos komandų eilutės priemonės, skirtos vaizdams optimizuoti, ir jos yra:

  1. jpegoptim – tai programa, skirta optimizuoti/suspausti JPEG failus neprarandant kokybės.
  2. OptiPNG – tai maža programa, kuri optimizuoja PNG vaizdus iki mažesnio dydžio neprarandant jokios informacijos.

Naudodami šiuos du įrankius galite optimizuoti vieną arba kelis vaizdus vienu metu.

Suspauskite arba optimizuokite JPEG vaizdus iš komandinės eilutės

jpegoptim yra komandų eilutės įrankis, kurį galima naudoti optimizuojant ir suglaudinant JPEG, JPG ir JFIF failus neprarandant tikrosios kokybės. Šis įrankis palaiko be nuostolių optimizavimą, kuris pagrįstas Huffman lentelių optimizavimu.

Įdiekite „jpegoptim“ sistemoje „Linux“.

Norėdami įdiegti jpegoptim savo „Linux“ sistemose, paleiskite šią komandą iš terminalo.

„Debian“ ir jos dariniuose
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
RedHat pagrįstose sistemose

RPM pagrįstose sistemose, pvz., RHEL, CentOS, Fedora ir kt., turite įdiegti ir įgalinti EPEL saugyklą arba galite įdiegti epel saugykla tiesiai iš komandinės eilutės, kaip parodyta:

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

Toliau įdiekite jpegoptim programą iš saugyklos, kaip parodyta:

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

Kaip naudoti Jpegoptim vaizdo optimizavimo priemonę

Jpegoptm sintaksė yra tokia:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Dabar suglaudinkime šį tecmint.jpeg vaizdą, bet prieš optimizuodami vaizdą pirmiausia sužinokite tikrąjį vaizdo dydį naudodami komandą du, kaip parodyta.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Čia tikrasis failo dydis yra 6,2 MB, dabar suglaudinkite šį failą paleisdami:

jpegoptim tecmint.jpeg 

Atidarykite suspaustą vaizdą bet kurioje vaizdų peržiūros programoje, didelių skirtumų nerasite. Šaltinio ir suspaustų vaizdų kokybė bus tokia pati.

Aukščiau pateikta komanda optimizuoja vaizdus iki didžiausio galimo dydžio. Tačiau galite suspausti pateiktą vaizdą iki konkretaus dydžio, tačiau tai išjungia optimizavimą be nuostolių.

Pavyzdžiui, suglaudinkime virš vaizdo nuo 5,6 MB iki maždaug 250 KB.

jpegoptim --size=250k tecmint.jpeg

Paketinis JPEG vaizdo suspaudimas ir optimizavimas

Galite paklausti, kaip suspausti vaizdus visame kataloge, tai taip pat nėra sunku. Eikite į katalogą, kuriame yra vaizdai.

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

Tada paleiskite šią komandą, kad suspaustumėte visus vaizdus vienu metu.

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.

Taip pat galite vienu metu suspausti kelis pasirinktus vaizdus:

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

Norėdami gauti daugiau informacijos apie įrankį jpegoptim, žr. man puslapius.

man jpegoptim 

Suspauskite arba optimizuokite PNG vaizdus iš komandinės eilutės

OptiPNG yra komandų eilutės įrankis, naudojamas PNG (nešiojamojo tinklo grafikos) failams optimizuoti ir suspausti neprarandant pradinės kokybės.

OptiPNG diegimas ir naudojimas labai panašus į jpegoptim.

Įdiekite „OptiPNG“ sistemoje „Linux“.

Norėdami įdiegti OptiPNG savo „Linux“ sistemose, paleiskite šią komandą iš terminalo.

„Debian“ ir jos dariniuose
apt-get install optipng
or
sudo apt-get install optipng
RedHat pagrįstose sistemose
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Pastaba: norėdami įdiegti optipng, RHEL/CentOS pagrįstose sistemose turi būti įjungta epel saugykla programa.

Kaip naudoti „OptiPNG“ vaizdo optimizavimo priemonę

Bendra optipng sintaksė yra tokia:

optipng filename.png
optipng [options] filename.png

Suglaudinkime tecmint.png vaizdą, bet prieš optimizuodami pirmiausia patikrinkite tikrąjį vaizdo dydį, kaip parodyta:

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

Čia tikrasis aukščiau esančio vaizdo failo dydis yra 350 K, dabar suglaudinkite šį failą paleisdami:

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)

Kaip matote anksčiau pateiktoje išvestyje, tecmint.png failo dydis sumažintas iki 30,39 %. Dabar dar kartą patikrinkite failo dydį naudodami:

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

Atidarykite suspaustą vaizdą bet kurioje vaizdų peržiūros programoje, nerasite didelių skirtumų tarp originalių ir suspaustų failų. Šaltinio ir suspaustų vaizdų kokybė bus tokia pati.

Paketinis PNG vaizdo glaudinimas ir optimizavimas

Norėdami suspausti paketą arba kelis PNG vaizdus vienu metu, tiesiog eikite į katalogą, kuriame yra visi vaizdai, ir paleiskite šią komandą, kad suspaustumėte.

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

Norėdami gauti daugiau informacijos apie parinktį, žr. žinyno puslapius.

man optipng

Išvada

Jei esate žiniatinklio valdytojas ir norite pateikti optimizuotus vaizdus savo svetainėje ar tinklaraštyje, šie įrankiai gali būti labai naudingi. Šie įrankiai ne tik sutaupo vietos diske, bet ir sumažina pralaidumą įkeliant vaizdus.

Jei žinote kokį kitą geresnį būdą pasiekti tą patį, praneškite mums komentaruose ir nepamirškite pasidalinti šiuo straipsniu savo socialiniuose tinkluose ir palaikyti mus.