Vor Tagen haben wir ein sehr nützliches Tutorial zum Optimieren / Komprimieren von PNG-Dateien unter Linux mit dem fantastischen optipng-Befehl geschrieben. Viele Benutzer haben jedoch auch JPG / JPEG-Dateien, die häufig für hochauflösende Fotografien verwendet werden. Wie lautet der Befehl zur Optimierung von JPEG-Bildern in Linux, um diese Dateien zu komprimieren?
Was ist das JPG-Format?
Das JPG-Dateiformat ist eines der ältesten und am häufigsten verwendeten Bildformate im World Wide Web. Es ist wirklich nützlich und wird für hochauflösende Fotos empfohlen. JPEG ermöglicht mehrere Komprimierungsgrade, die manuell angepasst werden können, wenn Sie ein Bild aufnehmen oder ein Bild in einem Bildbearbeitungsprogramm bearbeiten. Die Komprimierungsstufe kann zwischen 10:1 mit wenig bis gar keinem wahrnehmbaren Verlust der Fotoqualität eingestellt werden.
Jpegoptim:der beste Linux-Jpeg-Bildoptimierungsbefehl
JPEG-Fotos können Ihre Bandbreite verbrauchen, wenn Sie sie nicht optimieren. Viele Benutzer machen normalerweise ein Bild mit ihren Telefonen oder Digitalkameras, und aufgrund der hohen Auflösung / Qualität dieser Kameras ist das Ergebnis ein großartiges Bild, aber wenn Sie diese Bilder auf eine Website hochladen, werden Sie feststellen, dass es ewig dauert laden.
In diesem Beitrag werden wir versuchen, Fragen zu beantworten wie:
- Wie kann ich JPEG-Bilder auf meinem Linux-Server komprimieren/optimieren?
- Wie kann ich bei meinen CDN-Images auf Amazon Cloud Front, Cloudflare oder MaxCDN Bandbreite sparen?
- Ist es möglich, einen Bildkompressor zu verwenden, um unter Linux eine verlustfreie Komprimierung von JPEG-/JPEG-Dateien in großen Mengen zu erstellen und gleichzeitig Bildqualitätsverluste zu vermeiden?
Mal sehen, was die besten Optionen zum Komprimieren von JPEG-Dateien sind. Es gibt viele JPEG-Komprimierungstools online. Wenn Sie jedoch die volle Root-Kontrolle über Ihren Linux / Unix-Server haben, gibt es eine bessere Möglichkeit, JPEG zu optimieren. Wir werden eine berühmte verwenden JPEG-Komprimierungstool (ein JPG-Shrinker), das die ganze Arbeit für Sie erledigt.
Vergessen Sie langsame alte Methoden zur Optimierung von JPEG und optimieren Sie JPG-Dateien mit Online-Kompressoren. Mit jpegtrim können Sie sogar mehrere JPG-Dateien mit einem einzigen Befehl komprimieren. Fangen wir an.
Optimieren Sie Ihre JPEG-Dateien auf zwei Arten
1) Fotoauflösung reduzieren
Sie können einfache Bildbearbeitungsprogramme wie GIMP verwenden, das für alle wichtigen Linux-Distributionen verfügbar ist. Wenn Sie ein Bild mit 2000 × 1024 Pixeln aufnehmen, reduzieren Sie es auf die Hälfte, Sie haben immer noch ein schön großes Bild und Ihre JPEG-Größe wird um 50 % kleiner sein.
2) Verwenden Sie jpegoptim, um die JPG-Größe zu optimieren
Der jpegoptim-Befehl ist derjenige, der die ganze Magie erledigt. Es ist ein befehlszeilenbasiertes Tool, das Ihnen hilft, JPEG-Dateien zu optimieren/komprimieren. Diese Anwendung ermöglicht Ihnen eine verlustfreie Optimierung durch Optimierung der JPG-Huffman-Tabellen. Dies wird auch als „verlustbehaftete“ Bildoptimierung bezeichnet.
Dieser Befehl ist für jede Art von Linux-basierten Servern nützlich, er funktioniert auf dedizierten Servern, vps-Servern, Cloud-Servern und natürlich, wenn Sie ein CDN wie Akamaik, Cloudfront, Cloudflare, StackPath (MaxCDN) verwenden, wird er Ihnen helfen um die endgültige Größe der Datei zu reduzieren und Tag für Tag Bandbreite bei Ihrem CDN-Anbieter zu sparen.
Installieren Sie jpegoptim auf Ubuntu/Debian
Führen Sie diesen apt-get-Befehl aus, um dieses Tool auf Debian-basierten Servern zu installieren:
apt-get install jpegoptim
Installieren Sie jpegoptim auf CentOS/RHEL/Fedora
Installieren Sie EPEL Repo, um sicherzustellen, dass jpegoptim installiert wird:
yum install epel-release
Installieren Sie das Paket:
yum install jpegoptim
Beispielausgaben:
jpegoptim-Syntax/Verwendung
Die Verwendung des Befehls ist ziemlich einfach:
- jpegoptim
- jpegoptim [Optionen]
Um ein Foto zu optimieren, können Sie es wie oben beschrieben versuchen:
jpegoptim your-photo.jpeg
Beispielausgaben für cPanelTips.com-Fotodateien:
[[email protected]:~]jpegoptim Fig.-01.-Screenshot-of-jpeoptim-installation-on-Linux-624x599.jpg Fig.-01.-Screenshot-of-jpeoptim-installation-on-Linux-624x599.jpg 624x599 24bit N JFIF [OK] 53186 --> 51301 bytes (3.54%), optimized. [[email protected]:~]
Wie verarbeite ich diesen JPEG-Shrinker im Batch / Bulk?
Sie können eine klassische for-Schleife aus Bash verwenden, zum Beispiel:
for i in 1.jpeg 2.jpeg 3.jpeg; do jpegoptim "$i"; done
jpegoptim-Optionen
Dies sind die verfügbaren Optionen von der Manpage durch Ausführen von jpegoptim –help:
jpegoptim v1.4.4 Copyright (c) 1996-2016, Timo Kokkonen Usage: jpegoptim [options] -d, --dest= specify alternative destination directory for optimized files (default is to overwrite originals) -f, --force force optimization -h, --help display this help and exit -m, --max= set maximum image quality factor (disables lossless optimization mode, which is by default on) Valid quality values: 0 - 100 -n, --noaction don't really optimize files, just print results -S, --size= Try to optimize file to given size (disables lossless optimization mode). Target size is specified either in kilo bytes (1 - n) or as percentage (1% - 99%) -T, --threshold= keep old file if the gain is below a threshold (%) -b, --csv print progress info in CSV format -o, --overwrite overwrite target file even if it exists (meaningful only when used with -d, --dest option) -p, --preserve preserve file timestamps -P, --preserve-perms preserve original file permissions by overwriting it -q, --quiet quiet mode -t, --totals print totals after processing all files -v, --verbose enable verbose mode (positively chatty) -V, --version print program version -s, --strip-all strip all markers from output file --strip-none do not strip any markers --strip-com strip Comment markers from output file --strip-exif strip Exif markers from output file --strip-iptc strip IPTC/Photoshop (APP13) markers from output file --strip-icc strip ICC profile markers from output file --strip-xmp strip XMP markers markers from output file --all-normal force all output files to be non-progressive --all-progressive force all output files to be progressive --stdout send output to standard output (instead of a file) --stdin read input from standard input (instead of a file)
Zu diesem Zeitpunkt sollten Sie in der Lage sein, jpegoptim zu verwenden, wahrscheinlich den besten Linux-Jpeg-Bildoptimierungsbefehl, der für moderne Linux-Distributionen verfügbar ist.
Kennen Sie andere Befehle zum Optimieren von JPEG/JPG-Dateien unter Linux / Unix? Teilen Sie Ihr Wissen mit uns.
Weiterführende Literatur:
- jpegoptim
- jpegoptim-Manpage