Hvordan optimalisere og komprimere JPEG- eller PNG-bilder i Linux-kommandolinje


Du har mange bilder, og ønsker å optimalisere og komprimere bildene uten å miste den opprinnelige kvaliteten før du laster dem opp til noen sky eller lokale lagringer? Det er mange GUI-applikasjoner tilgjengelig som vil hjelpe deg med å optimalisere bildene. Men her er to enkle kommandolinjeverktøy for å optimalisere bilder, og de er:

  1. jpegoptim – er et verktøy for å optimalisere/komprimere JPEG-filer uten å miste kvalitet.
  2. OptiPNG – er et lite program som optimerer PNG-bilder til mindre størrelse uten å miste informasjon.

Ved å bruke disse to verktøyene kan du enten optimere et enkelt eller flere bilder om gangen.

Komprimer eller optimaliser JPEG-bilder fra kommandolinjen

jpegoptim er et kommandolinjeverktøy som kan brukes til å optimalisere og komprimere JPEG-, JPG- og JFIF-filer uten å miste den faktiske kvaliteten. Dette verktøyet støtter tapsfri optimalisering, som er basert på optimalisering av Huffman-tabellene.

Installer jpegoptim i Linux

For å installere jpegoptim på Linux-systemene dine, kjør følgende kommando fra terminalen.

På Debian og det er derivater
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
På RedHat-baserte systemer

På RPM-baserte systemer som RHEL, CentOS, Fedora osv., må du installere og aktivere EPEL-lageret, eller alternativt kan du installere epel repository direkte fra kommandolinjen som vist:

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

Installer deretter jpegoptim-programmet fra depotet som vist:

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

Slik bruker du Jpegoptim Image Optimizer

Syntaksen til jpegoptm er:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

La oss nå komprimere følgende tecmint.jpeg-bilde, men før du optimaliserer bildet, finn først ut den faktiske størrelsen på bildet ved å bruke du-kommandoen som vist.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Her er den faktiske filstørrelsen 6,2 MB, komprimer nå denne filen ved å kjøre:

jpegoptim tecmint.jpeg 

Åpne det komprimerte bildet i et hvilket som helst bildevisningsprogram, du vil ikke finne noen store forskjeller. Kilden og de komprimerte bildene vil ha samme kvalitet.

Kommandoen ovenfor optimerer bildene til størst mulig størrelse. Du kan imidlertid komprimere det gitte bildet til en bestemt størrelse til, men det deaktiverer tapsfri optimalisering.

La oss for eksempel komprimere over bildet fra 5,6 MB til rundt 250k.

jpegoptim --size=250k tecmint.jpeg

Batch JPEG-bildekomprimering og -optimalisering

Du kan spørre hvordan du komprimerer bildene i hele katalogen, det er heller ikke vanskelig. Gå til katalogen der du har bildene.

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

Og kjør deretter følgende kommando for å komprimere alle bildene samtidig.

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.

Du kan også komprimere flere valgte bilder samtidig:

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

For mer informasjon om jpegoptim-verktøyet, sjekk ut man-sidene.

man jpegoptim 

Komprimer eller optimaliser PNG-bilder fra kommandolinjen

OptiPNG er et kommandolinjeverktøy som brukes til å optimalisere og komprimere PNG-filer (portable network graphics) uten å miste den opprinnelige kvaliteten.

Installasjonen og bruken av OptiPNG er veldig lik jpegoptim.

Installer OptiPNG i Linux

For å installere OptiPNG på Linux-systemene dine, kjør følgende kommando fra terminalen.

På Debian og det er derivater
apt-get install optipng
or
sudo apt-get install optipng
På RedHat-baserte systemer
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Merk: Du må ha epel repository aktivert på dine RHEL/CentOS-baserte systemer for å installere optipng programmet.

Slik bruker du OptiPNG Image Optimizer

Den generelle syntaksen for optipng er:

optipng filename.png
optipng [options] filename.png

La oss komprimere tecmint.png-bildet, men før du optimaliserer, kontroller først den faktiske størrelsen på bildet som vist:

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

Her er den faktiske filstørrelsen på bildet ovenfor 350K, komprimer nå denne filen ved å kjøre:

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)

Som du ser i utdataene ovenfor, er størrelsen på tecmint.png-filen redusert til 30,39 %. Bekreft nå filstørrelsen igjen ved å bruke:

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

Åpne det komprimerte bildet i et hvilket som helst bildevisningsprogram, du vil ikke finne noen store forskjeller mellom de originale og komprimerte filene. Kilden og de komprimerte bildene vil ha samme kvalitet.

Batch PNG-bildekomprimering og -optimalisering

For å komprimere batch- eller flere PNG-bilder samtidig, gå bare til katalogen der alle bildene ligger og kjør følgende kommando for å komprimere.

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

For mer informasjon om optipng, sjekk man-sider.

man optipng

Konklusjon

Hvis du er nettredaktør og ønsker å vise optimaliserte bilder over nettstedet ditt eller en blogg, kan disse verktøyene være veldig nyttige. Disse verktøyene sparer ikke bare diskplass, men reduserer også båndbredden mens du laster opp bildene.

Hvis du vet noen annen bedre måte å oppnå samme ting på, gi oss beskjed via kommentarer og ikke glem å dele denne artikkelen på dine sosiale nettverk og støtte oss.