Jinsi ya Kuboresha na Kufinyiza Picha za JPEG au PNG katika Line Commandline ya Linux


Una picha nyingi, na ungependa kuboresha na kubana picha bila kupoteza ubora wake asili kabla ya kuzipakia kwenye wingu lolote au hifadhi za ndani? Kuna programu nyingi za GUI zinazopatikana ambazo zitakusaidia kuboresha picha. Walakini, hapa kuna huduma mbili rahisi za mstari wa amri ili kuongeza picha na ni:

  1. jpegoptim - ni matumizi ya kuboresha/kubana faili za JPEG bila kupoteza ubora.
  2. OptiPNG – ni programu ndogo inayoboresha picha za PNG hadi ukubwa mdogo bila kupoteza taarifa yoyote.

Kwa kutumia zana hizi mbili, unaweza kuboresha picha moja au nyingi kwa wakati mmoja.

Finya au Boresha Picha za JPEG kutoka kwa Mstari wa Amri

jpegoptim ni zana ya mstari wa amri ambayo inaweza kutumika kuboresha na kubana faili za JPEG, JPG na JFIF bila kupoteza ubora wake halisi. Zana hii inasaidia uboreshaji usio na hasara, ambao unategemea uboreshaji wa meza za Huffman.

Ili kusakinisha jpegoptim kwenye mifumo yako ya Linux, endesha amri ifuatayo kutoka kwa terminal yako.

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

Kwenye mifumo ya msingi ya RPM kama vile RHEL, CentOS, Fedora n.k., unahitaji kusakinisha na kuwezesha hazina ya EPEL au sivyo, unaweza kusakinisha hazina ya epel moja kwa moja kutoka kwa amri kama inavyoonyeshwa:

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

Ifuatayo, sasisha programu ya jpegoptim kutoka kwa hazina kama inavyoonyeshwa:

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

Syntax ya jpegoptm ni:

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

Hebu sasa tubana picha ifuatayo ya tecmint.jpeg, lakini kabla ya kuboresha picha, kwanza tujue saizi halisi ya picha kwa kutumia du amri kama inavyoonyeshwa.

$ du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Hapa saizi halisi ya faili ni 6.2MB, sasa finya faili hii kwa kukimbia:

$ jpegoptim tecmint.jpeg 

Fungua picha iliyobanwa katika programu yoyote ya kutazama picha, hautapata tofauti zozote kuu. Chanzo na picha zilizobanwa zitakuwa na ubora sawa.

Amri iliyo hapo juu inaboresha picha kwa saizi ya juu iwezekanavyo. Walakini, unaweza kukandamiza picha uliyopewa kwa saizi maalum, lakini inalemaza uboreshaji usio na hasara.

Kwa mfano, hebu tubanane juu ya picha kutoka 5.6MB hadi karibu 250k.

$ jpegoptim --size=250k tecmint.jpeg

Unaweza kuuliza jinsi ya kukandamiza picha kwenye saraka nzima, hiyo sio ngumu pia. Nenda kwenye saraka ambapo una picha.

[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

Na kisha endesha amri ifuatayo ili kubana picha zote mara moja.

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

Unaweza pia kubana picha nyingi zilizochaguliwa mara moja:

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

Kwa maelezo zaidi kuhusu zana ya jpegoptim, angalia kurasa za mtu.

$ man jpegoptim 

Finyaza au Boresha Picha za PNG kutoka kwa Mstari wa Amri

OptiPNG ni zana ya mstari wa amri inayotumiwa kuboresha na kubana faili za PNG (picha za mtandao zinazobebeka) bila kupoteza ubora wake asili.

Usakinishaji na matumizi ya OptiPNG ni sawa na jpegoptim.

Ili kusakinisha OptiPNG kwenye mifumo yako ya Linux, endesha amri ifuatayo kutoka kwa terminal yako.

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

Kumbuka: Lazima uwe na hazina ya epel iliyowezeshwa kwenye mifumo yako ya msingi ya RHEL/CentOS ili kusakinisha programu ya optipng.

Syntax ya jumla ya opng ni:

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

Hebu tubanane na picha ya tecmint.png, lakini kabla ya kuboresha, kwanza angalia saizi halisi ya picha kama inavyoonyeshwa:

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

Hapa saizi halisi ya faili ya picha hapo juu ni 350K, sasa finya faili hii kwa kukimbia:

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

Kama unavyoona katika matokeo yaliyo hapo juu, saizi ya faili ya tecmint.png imepunguzwa hadi 30.39%. Sasa thibitisha saizi ya faili tena kwa kutumia:

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

Fungua picha iliyobanwa katika programu yoyote ya kutazama picha, hutapata tofauti kubwa kati ya faili asili na zilizobanwa. Chanzo na picha zilizobanwa zitakuwa na ubora sawa.

Ili kubana kundi au picha nyingi za PNG mara moja, nenda tu kwenye saraka ambapo picha zote zinakaa na utekeleze amri ifuatayo ya kubana.

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

Kwa maelezo zaidi kuhusu opng kuangalia kurasa za mtu.

$ man optipng

Hitimisho

Ikiwa wewe ni msimamizi wa tovuti na unataka kutoa picha zilizoboreshwa kwenye tovuti yako au blogu, zana hizi zinaweza kukusaidia sana. Zana hizi sio tu kuokoa nafasi ya diski, lakini pia hupunguza bandwidth wakati wa kupakia picha.

Ikiwa unajua njia nyingine bora ya kufikia kitu kama hicho, tujulishe kupitia maoni na usisahau kushiriki nakala hii kwenye mitandao yako ya kijamii na utuunge mkono.