Τρόπος βελτιστοποίησης και συμπίεσης εικόνων JPEG ή PNG στη γραμμή εντολών Linux


Έχετε πολλές εικόνες και θέλετε να βελτιστοποιήσετε και να συμπιέσετε τις εικόνες χωρίς να χάσετε την αρχική τους ποιότητα πριν τις ανεβάσετε σε οποιοδήποτε cloud ή τοπικό χώρο αποθήκευσης; Υπάρχουν πολλές διαθέσιμες εφαρμογές GUI που θα σας βοηθήσουν να βελτιστοποιήσετε τις εικόνες. Ωστόσο, εδώ υπάρχουν δύο απλά βοηθητικά προγράμματα γραμμής εντολών για τη βελτιστοποίηση των εικόνων και είναι:

  1. Το jpegoptim – είναι ένα βοηθητικό πρόγραμμα για τη βελτιστοποίηση/συμπίεση αρχείων JPEG χωρίς απώλεια ποιότητας.
  2. OptiPNG – είναι ένα μικρό πρόγραμμα που βελτιστοποιεί τις εικόνες PNG σε μικρότερο μέγεθος χωρίς να χάνονται πληροφορίες.

Χρησιμοποιώντας αυτά τα δύο εργαλεία, μπορείτε είτε να βελτιστοποιήσετε μία είτε πολλές εικόνες ταυτόχρονα.

Συμπίεση ή βελτιστοποίηση εικόνων JPEG από τη γραμμή εντολών

Το jpegoptim είναι ένα εργαλείο γραμμής εντολών που μπορεί να χρησιμοποιηθεί για τη βελτιστοποίηση και τη συμπίεση αρχείων JPEG, JPG και JFIF χωρίς να χάσει την πραγματική του ποιότητα. Αυτό το εργαλείο υποστηρίζει βελτιστοποίηση χωρίς απώλειες, η οποία βασίζεται στη βελτιστοποίηση των πινάκων Huffman.

Εγκαταστήστε το jpegoptim στο Linux

Για να εγκαταστήσετε το jpegoptim στα συστήματα Linux, εκτελέστε την ακόλουθη εντολή από το τερματικό σας.

Στο Debian and it's Derivatives
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
Σε συστήματα που βασίζονται στο RedHat

Σε συστήματα που βασίζονται σε RPM όπως RHEL, CentOS, Fedora κ.λπ., πρέπει να εγκαταστήσετε και να ενεργοποιήσετε το αποθετήριο EPEL ή εναλλακτικά, μπορείτε να εγκαταστήσετε το epel αποθετήριο απευθείας από τη γραμμή εντολών όπως φαίνεται:

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

Στη συνέχεια εγκαταστήστε το πρόγραμμα jpegoptim από το αποθετήριο όπως φαίνεται:

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

Πώς να χρησιμοποιήσετε το Jpegoptim Image Optimizer

Η σύνταξη του jpegoptm είναι:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Ας συμπιέσουμε τώρα την ακόλουθη εικόνα tecmint.jpeg, αλλά πριν βελτιστοποιήσετε την εικόνα, μάθετε πρώτα το πραγματικό μέγεθος της εικόνας χρησιμοποιώντας την εντολή du όπως φαίνεται.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Εδώ το πραγματικό μέγεθος αρχείου είναι 6,2 MB, τώρα συμπιέστε αυτό το αρχείο εκτελώντας:

jpegoptim tecmint.jpeg 

Ανοίξτε τη συμπιεσμένη εικόνα σε οποιαδήποτε εφαρμογή προβολής εικόνων, δεν θα βρείτε σημαντικές διαφορές. Η πηγή και οι συμπιεσμένες εικόνες θα έχουν την ίδια ποιότητα.

Η παραπάνω εντολή βελτιστοποιεί τις εικόνες στο μέγιστο δυνατό μέγεθος. Ωστόσο, μπορείτε να συμπιέσετε τη δεδομένη εικόνα σε ένα συγκεκριμένο μέγεθος, αλλά απενεργοποιεί τη βελτιστοποίηση χωρίς απώλειες.

Για παράδειγμα, ας συμπιέσουμε πάνω από την εικόνα από 5,6 MB σε περίπου 250k.

jpegoptim --size=250k tecmint.jpeg

Μαζική συμπίεση και βελτιστοποίηση εικόνας JPEG

Ίσως ρωτήσετε πώς να συμπιέσετε τις εικόνες σε ολόκληρο τον κατάλογο, δεν είναι επίσης δύσκολο. Μεταβείτε στον κατάλογο όπου έχετε τις εικόνες.

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

Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να συμπιέσετε όλες τις εικόνες ταυτόχρονα.

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.

Μπορείτε επίσης να συμπιέσετε πολλές επιλεγμένες εικόνες ταυτόχρονα:

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

Για περισσότερες λεπτομέρειες σχετικά με το εργαλείο jpegoptim, ανατρέξτε στις σελίδες man.

man jpegoptim 

Συμπίεση ή βελτιστοποίηση εικόνων PNG από τη γραμμή εντολών

Το OptiPNG είναι ένα εργαλείο γραμμής εντολών που χρησιμοποιείται για τη βελτιστοποίηση και τη συμπίεση αρχείων PNG (φορητά γραφικά δικτύου) χωρίς να χάσει την αρχική του ποιότητα.

Η εγκατάσταση και η χρήση του OptiPNG μοιάζει πολύ με το jpegoptim.

Εγκαταστήστε το OptiPNG σε Linux

Για να εγκαταστήσετε το OptiPNG στα συστήματά σας Linux, εκτελέστε την ακόλουθη εντολή από το τερματικό σας.

Στο Debian and it's Derivatives
apt-get install optipng
or
sudo apt-get install optipng
Σε συστήματα που βασίζονται στο RedHat
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Σημείωση: Πρέπει να έχετε ενεργοποιημένο το αποθετήριο epel στα συστήματα που βασίζονται στο RHEL/CentOS για να εγκαταστήσετε το optipng πρόγραμμα.

Πώς να χρησιμοποιήσετε το OptiPNG Image Optimizer

Η γενική σύνταξη του optipng είναι:

optipng filename.png
optipng [options] filename.png

Ας συμπιέσουμε την εικόνα tecmint.png, αλλά πριν τη βελτιστοποίηση, ελέγξτε πρώτα το πραγματικό μέγεθος της εικόνας όπως φαίνεται:

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

Εδώ το πραγματικό μέγεθος αρχείου της παραπάνω εικόνας είναι 350K, τώρα συμπιέστε αυτό το αρχείο εκτελώντας:

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)

Όπως βλέπετε στην παραπάνω έξοδο, το μέγεθος του αρχείου tecmint.png έχει μειωθεί έως και 30,39%. Τώρα επαληθεύστε ξανά το μέγεθος του αρχείου χρησιμοποιώντας:

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

Ανοίξτε τη συμπιεσμένη εικόνα σε οποιαδήποτε εφαρμογή προβολής εικόνων, δεν θα βρείτε σημαντικές διαφορές μεταξύ του αρχικού και των συμπιεσμένων αρχείων. Η πηγή και οι συμπιεσμένες εικόνες θα έχουν την ίδια ποιότητα.

Μαζική συμπίεση και βελτιστοποίηση εικόνας PNG

Για να συμπιέσετε ομαδικές ή πολλές εικόνες PNG ταυτόχρονα, απλώς μεταβείτε στον κατάλογο όπου βρίσκονται όλες οι εικόνες και εκτελέστε την ακόλουθη εντολή για συμπίεση.

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

Για περισσότερες λεπτομέρειες σχετικά με την optipng ελέγξτε τις σελίδες man.

man optipng

συμπέρασμα

Εάν είστε webmaster και θέλετε να προβάλλετε βελτιστοποιημένες εικόνες στον ιστότοπό σας ή σε ένα ιστολόγιο, αυτά τα εργαλεία μπορεί να είναι πολύ χρήσιμα. Αυτά τα εργαλεία όχι μόνο εξοικονομούν χώρο στο δίσκο, αλλά μειώνουν και το εύρος ζώνης κατά τη μεταφόρτωση των εικόνων.

Εάν γνωρίζετε κάποιον άλλο καλύτερο τρόπο για να πετύχετε το ίδιο πράγμα, ενημερώστε μας μέσω σχολίων και μην ξεχάσετε να μοιραστείτε αυτό το άρθρο στα κοινωνικά σας δίκτυα και να μας υποστηρίξετε.