Com optimitzar i comprimir imatges JPEG o PNG a la línia d'ordres de Linux


Teniu moltes imatges i voleu optimitzar i comprimir-les sense perdre la seva qualitat original abans de pujar-les a cap núvol o emmagatzematge local? Hi ha moltes aplicacions GUI disponibles que us ajudaran a optimitzar les imatges. Tanmateix, aquí hi ha dues utilitats senzilles de línia d'ordres per optimitzar imatges i són:

  1. jpegoptim: és una utilitat per optimitzar/comprimir fitxers JPEG sense perdre qualitat.
  2. OptiPNG: és un petit programa que optimitza imatges PNG a mida més petita sense perdre cap informació.

Amb aquestes dues eines, podeu optimitzar una o diverses imatges alhora.

Comprimiu o optimitzeu imatges JPEG des de la línia d'ordres

jpegoptim és una eina de línia d'ordres que es pot utilitzar per optimitzar i comprimir fitxers JPEG, JPG i JFIF sense perdre la seva qualitat real. Aquesta eina admet l'optimització sense pèrdues, que es basa en l'optimització de les taules Huffman.

Per instal·lar jpegoptim als vostres sistemes Linux, executeu l'ordre següent des del vostre terminal.

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

En sistemes basats en RPM com RHEL, CentOS, Fedora, etc., cal instal·lar i habilitar el repositori EPEL o, alternativament, podeu instal·lar el repositori epel directament des de la línia d'ordres tal com es mostra:

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

A continuació, instal·leu el programa jpegoptim des del dipòsit tal com es mostra:

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

La sintaxi de jpegoptm és:

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

Ara comprimim la següent imatge tecmint.jpeg, però abans d'optimitzar la imatge, primer esbrineu la mida real de la imatge mitjançant l'ordre du tal com es mostra.

$ du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Aquí la mida real del fitxer és de 6,2 MB, ara comprimiu aquest fitxer executant:

$ jpegoptim tecmint.jpeg 

Obriu la imatge comprimida en qualsevol aplicació de visualització d'imatges, no trobareu diferències importants. La font i les imatges comprimides tindran la mateixa qualitat.

L'ordre anterior optimitza les imatges a la mida màxima possible. Tanmateix, podeu comprimir la imatge donada a una mida específica, però desactiva l'optimització sense pèrdues.

Per exemple, comprimim a sobre de la imatge de 5,6 MB a uns 250 k.

$ jpegoptim --size=250k tecmint.jpeg

Podeu preguntar com comprimir les imatges a tot el directori, això tampoc és difícil. Aneu al directori on teniu les imatges.

[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

A continuació, executeu l'ordre següent per comprimir totes les imatges alhora.

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

També podeu comprimir diverses imatges seleccionades alhora:

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

Per obtenir més detalls sobre l'eina jpegoptim, consulteu les pàgines man.

$ man jpegoptim 

Comprimiu o optimitzeu imatges PNG des de la línia d'ordres

OptiPNG és una eina de línia d'ordres que s'utilitza per optimitzar i comprimir fitxers PNG (gràfics de xarxa portàtils) sense perdre la seva qualitat original.

La instal·lació i l'ús d'OptiPNG és molt similar a jpegoptim.

Per instal·lar OptiPNG als vostres sistemes Linux, executeu l'ordre següent des del vostre terminal.

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

Nota: Per instal·lar el programa optipng, heu de tenir el repositori epel habilitat als vostres sistemes basats en RHEL/CentOS.

La sintaxi general d'optipng és:

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

Anem a comprimir la imatge tecmint.png, però abans d'optimitzar, primer comproveu la mida real de la imatge tal com es mostra:

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

Aquí la mida real del fitxer de la imatge anterior és de 350 K, ara comprimiu aquest fitxer executant:

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

Com veieu a la sortida anterior, la mida del fitxer tecmint.png s'ha reduït fins a un 30,39%. Ara torneu a comprovar la mida del fitxer amb:

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

Obriu la imatge comprimida en qualsevol aplicació de visualització d'imatges, no trobareu diferències importants entre els fitxers originals i comprimits. La font i les imatges comprimides tindran la mateixa qualitat.

Per comprimir per lots o diverses imatges PNG alhora, aneu al directori on resideixen totes les imatges i executeu l'ordre següent per comprimir.

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

Per obtenir més detalls sobre optipng, consulteu les pàgines de manual.

$ man optipng

Conclusió

Si sou un administrador web i voleu publicar imatges optimitzades al vostre lloc web o un bloc, aquestes eines poden ser molt útils. Aquestes eines no només estalvien l'espai en disc, sinó que també redueixen l'ample de banda mentre es carreguen les imatges.

Si coneixeu alguna altra manera millor d'aconseguir el mateix, feu-nos-ho saber mitjançant els comentaris i no oblideu compartir aquest article a les vostres xarxes socials i donar-nos suport.