Wie kann ich Bilder komprimieren?


25

Ich habe 5.000 Bilder, die ich komprimieren muss (um sie auf meiner Website anzuzeigen).

Ich bin neu in Ubuntu. Also was mache ich?



@MostafaAhangarha: Kein Duplikat. Bitte lesen Sie meine Antwort askubuntu.com/a/781588/9598 und überdenken Sie Ihre Abstimmung, um diese Frage nicht zu schließen. Das ist ein guter. Vielen Dank!
Geppettvs D'Constanzo

Antworten:


21

Ich benutze Trimage super einfach zu bedienen.

Nur Bild hinzufügen und komprimieren, um zu installieren:

sudo apt-get install trimage

Bildbeschreibung hier eingeben


2
Ich sehe keine Einstellungen, mit denen ich definieren kann, wie komprimiert ich es möchte, Dateigröße usw.
Rico

46

Das Wort "Komprimierung" scheint in dieser Frage falsch interpretiert zu werden, es ist jedoch noch gültig, je nachdem, in welchem ​​Kontext Sie dies sehen möchten.

Die Landschaft

Stellen wir uns vor, dass Webdesigner, Webentwickler und / oder Webmaster unsere Bilddateien "komprimieren" müssen, um sie so "leicht" zu machen, dass sie schnell auf unser Hosting hochgeladen werden können, wenn wir direkt an einer realen Produktionsumgebung arbeiten. Dies hat keinen Einfluss darauf, ob wir in einer lokalen Testproduktionsumgebung arbeiten.

Viele der Antworten scheinen sich auf andere Dinge zu beziehen, die größtenteils darauf zurückzuführen sind, dass sie sich - wahrscheinlich - keiner solchen Szenerie gestellt haben. Deshalb beginne ich das zu erklären.

So. Lassen Sie uns verstehen, was die Antwort zu lösen hat:

  1. Das Bild muss leicht sein
  2. Das Bild MUSS "komprimiert" sein, um die Dateigröße zu verlieren, aber nicht "rezidiert", wie von einem anderen Benutzer angegeben, der auf eine in dieser Frage duplizierte JPG-Batch-Komprimierung und -Umbenennung hingewiesen hat (find -exec, xargs, piping?)
  3. Die Bilder sollten stapelweise komprimiert werden, vorzugsweise über eine GUI.

Leichtes Bild

Lassen Sie uns zunächst verstehen, was ein "leichtes Bild" sein sollte.

High Definition-Bilder mit Auflösungen über 1024px haben möglicherweise eine große Dateigröße. Ich liefere ein Beispiel für diesen Screenshot:

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Im Fenster mit den Dateieigenschaften sehen wir, dass es sich um eine 9,5-MB-Datei handelt, die beim Hochladen viel Zeit und beim Rendern auf dem Bildschirm viel Zeit in Anspruch nimmt, wenn sie auf einer Website veröffentlicht wird.

Trotzdem sind die Bildgröße und die Rasterauflösung für einen hochauflösenden Druck sehr nützlich. Das ist also eine andere Szenerie, die ich in dieser Erklärung nicht behandeln werde.

Wie kann ich dieses Bild auf einer Website verwenden, ohne Jahre auf das Hochladen zu warten und einige Jahre auf das Anzeigen auf meiner Website zu warten?

Die Datei sollte komprimiert sein.

Und wenn wir von "Komprimierung" sprechen, müssen wir ausdrücklich die Qualität ändern, um sie für den vorliegenden Fall nutzbar zu machen.

Lassen Sie uns also den nächsten in einem Terminal ablegen:

convert seminario-tabloide.png test.jpg

Dies wird das hochauflösende PNG-Format in ein "komprimiertes" JPG-Format konvertieren, das für sich genommen eine kleinere Datei ist! Es geht von 9,5 MB auf 2,4 MB.

Bildbeschreibung hier eingeben

Doch groß?

Aber 2,4 MB ist noch eine große Dateigröße. Spielen wir jetzt mit einigen anderen ImageMagick- Konvertierungsbefehlen , um kleinere Dateien zu erstellen:

convert test.jpg -quality 50% test-50p.jpg

Dies ist, was wir tun müssen, um ein Bild zu "komprimieren". Dies reduziert die Bildqualität um 50% und liefert eine Dateigröße von 938,4 KB <=== (Hinweis: KILOBYTES, nicht einmal ein Megabyte).

Wir können noch weiter gehen und eine kleinere Dateigröße erstellen, indem wir den Prozentsatz im selben Befehl anpassen:

convert test.jpg -quality 30% test-30p.jpg

Beachten Sie, dass in diesem Beispiel die Qualität der Datei und nicht die Bildgröße reduziert wird. Dies führt zu einer komprimierten Datei, die beim Rendern auf dem Bildschirm nicht visuell beeinträchtigt wird. Die Artefakte werden jedoch angezeigt, wenn Sie in einem großen Papierformat (größer als ein Buchstabe) drucken.

Größenänderung + Komprimierung = Super Cool!

Jetzt. Wir können etwas anderes machen. In der Tat ein paar Dinge: Wir können zuerst die Größe der Bilder ändern und danach die Komprimierung anwenden, was zu einer kleineren Dateigröße als das Original führt und ein nützliches Bild für das Rendern auf dem Bildschirm liefert, das sich nicht so gut zum Drucken eignet, wie es scheint muss es auf dem Bildschirm und nicht in einem gedruckten Banner angezeigt werden, oder?

Also machen wir das:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

Mit dieser Anweisung bitten wir Sie, die Größe des Bilds so zu ändern, dass es 1024 Pixel breit ist, um das Seitenverhältnis nicht zu verlieren.

Nun ... raten Sie mal was?

Die Dateigröße wurde von 9,5 MB auf ... reduziert (Suspense-Musik mit Congas bitte). 433,7 KILOBYTES

Wenn wir eine maximal komprimierte Datei wie diese maximal komprimieren möchten, werden einige Overhead-Daten in die Datei eingefügt, was zu einer größeren Datei führt. Also werde ich nicht vorschlagen, dass Sie es versuchen, aber wenn Sie erwarten, dass ich das Beispiel mache, ok ... Los geht's!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

Und wir sind mit einem einzigen Befehl von 433,7 KB auf 176,2 KB gewechselt . Dieses Beispiel war erfolgreich. Erwarten Sie jedoch nicht, dass Übungen zu kleineren Dateigrößen führen. Aber Sie können viel Spaß beim Ausführen dieser Art von Übungen haben.

Batch-Prozess

Oh! Aber ich vergesse fast eines der Bedürfnisse: Diesen Prozess mühelos auf viele Bilder anzuwenden.

Dafür können wir es mit zwei Verfahren tun.

Das Terminal

Das geht schneller und einfacher. Sagen wir also dem Terminal, dass wir dieselbe Anweisung in allen Dateien in einem Verzeichnis ausführen müssen. Danach erkläre ich eine andere Anweisung.

Alle in 1024px konvertieren (Sie können eine beliebige Pixelanzahl verwenden)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

Hier fordern wir den Befehl auf, dieselbe Anweisung für alle Dateien in einem Verzeichnis auszuführen, die Umwandlung anzuwenden und eine Kopie mit einem anderen Namen abzulegen, um die Auswahl zu vereinfachen.

Reduzieren Sie die Qualität um einen Prozentsatz (verwenden Sie einen beliebigen Prozentsatz) für alle Bilder in einem Verzeichnis:

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

Hier bitten wir Sie, die Bildgröße zu verkleinern, um die Dateigröße zu verringern.

Sie können mit diesen Befehlen spielen und Ihre Ergebnisse sehen. Nach ein paar Stunden Spaß werden Sie ein Experte sein.

Nautilus-Skript

Am 20. April 2015 war ich mit einer Situation wie der ursprünglichen konfrontiert, daher musste ich nachforschen und um Hilfe bei einer Frage bitten. Deshalb weiß ich jetzt viel davon. Glaube nicht, dass ich mit diesem Wissen geboren wurde, Mann.

Wenn Sie nicht an Terminals gewöhnt sind und / oder eine grafische Benutzeroberfläche verwenden möchten, um einfach Ihre Dateigruppen auszuwählen und die Transformationen anzuwenden, können Sie Ihr eigenes Nautilus-Aktionsskript erstellen, um einfach mit der rechten Maustaste auf die Dateigruppe zu klicken und auszuwählen eine Option aus dem Kontextmenü.

Eine Anleitung dazu finden Sie in den folgenden Fragen, Antworten und Kommentaren: Wie kann man JPG-Bilder stapelweise verarbeiten, um die Qualität mit Nautilus-Actions zu ändern?

Viel Glück!


1
Dies ist die Antwort auf die Frage "Bring mir das Fischen bei". Die convertBefehlszeilenfähigkeiten von ImageMagick sind großartig.
Charney Kaye

Solide! Ich habe den Sublime Text- Texteditor im Multi-Cursor-Modus verwendet, um schnell eine Reihe von Befehlen auf einmal zu ändern und eine Reihe von Fotos "stapelweise" zu komprimieren. Ich habe gerade das convert photo.jpg -quality 70% photo_compressed.jpgBefehlsformat verwendet und es hat super funktioniert! Durch Einstellen der Komprimierung auf nur 70% der Originalqualität wurde die Fotogröße auf ~ 37% des Originals reduziert, da der Effekt sowohl auf der x- als auch auf der y-Achse vergrößert wird.
Gabriel Staples

Fantastische Erklärung für so oft missverstandene Konzepte. Der Vollständigkeit halber möchte ich hinzufügen, dass Sie für die Stapelverarbeitung auch ImageMagicks mogrify verwenden können, anstatt zu konvertieren, in dem ich einen Ordner für die Ergebnisse erstelle, der dann einfach in diesen Ordner verarbeitet wird, der auch die Organisation der Dinge gewährleistet. Zum Beispielmogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
Dennis

0

Wenn Sie sich auf JPEG-Bilder beziehen, ist de facto keine Komprimierung möglich. Da JPEG per definitionem ein komprimiertes Dateiformat ist (Rauschen und unbrauchbare Pixel sind bereits entfernt). Sie können sie in Ordnung zippen, aber die Gesamtgröße bleibt in etwa gleich. Der einzige fortgeschrittene Komprimierungsalgorithmus, den ich für JPEGs kenne, ist zipx. Zipx ist jedoch Eigentum von Winzip und gewährleistet eine max. Größenreduzierung um 30% (im zipx-Archivmodus).

Um Ihre Bilder im Web anzuzeigen , sollten Sie zunächst die Größe ändern (jeweils unter 1 MB) und sie optional in das PNG-Dateiformat konvertieren. PNG (= Portable Network Graphics) ist speziell für eine schnellere Webübertragung und eine schnellere Anzeige optimiert. Fortgeschrittene Benutzer können diese Bilder sogar in das Webp-Format konvertieren (Googles Format für Bilder, schnellster Ladealgorithmus).

Sie können Bilder mit XnConvert stapelweise konvertieren und dann die Größe Ihrer Bilder mit XnView stapelweise ändern. Laden Sie das Deb-Paket von hier herunter: http://www.xnview.com/de/xnviewmp/#downloads , klicken Sie mit der rechten Maustaste darauf und öffnen Sie es mit Gnome Software.

Wenn Sie sich nicht für die Netzwerkladegeschwindigkeit, sondern für die Qualität interessieren, sollten Sie Ihre Bilder unberührt lassen und eine digitale Bibliothek für sie erstellen. Laden Sie sie möglicherweise auf einen öffentlichen Server (Yahoo, Google usw.) hoch.


3
Möglicherweise möchten Sie die verschiedenen Optionen für die JPEG-Komprimierung / -Qualität erwähnen. Es ist durchaus möglich, die Dateigröße eines JPEG-Bilds durch Erhöhen der Komprimierung (und damit der Qualität) zu verringern.
Nick Weinberg

1
Mein Verständnis von Komprimierung bedeutet, unnötige Pixel zu eliminieren und dabei die gleiche Qualität beizubehalten. Qualitätsreduzierung ist keine Komprimierung, sondern nur Downsizing oder Downsampling. Die verlustfreie Komprimierung ist mit dem zipx-Format möglich, das sich hervorragend für Serienbilder eignet. Es wird eine Art überlagerter / überstapelter Stapel ähnlicher Fotos erstellt, bei denen alle doppelten Pixel auf einer separaten Ebene abgeflacht sind, ähnlich wie bei einer CSS-Datei auf einer Webseite. Wiederholte Pixel werden als separate Entität innerhalb des Archivs definiert.
Ipse Laute
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.