Ich möchte eine JPG-Bilddatei mit ImageMagick komprimieren, kann aber keinen großen Größenunterschied feststellen. Standardmäßig ist die Ausgabegröße größer als die Eingabe. Ich weiß nicht warum, aber nachdem ich einige + Profiloptionen hinzugefügt und die Qualität festgelegt habe, kann ich eine kleinere Größe erhalten, die aber immer noch dem Original ähnelt.
Das Eingabebild ist 255 KB groß, das verarbeitete Bild ist 264 KB groß (mit + Profil werden Profile entfernt und die Qualität auf 70% eingestellt). Gibt es eine Möglichkeit, dieses Bild auf mindestens 150 KB zu komprimieren? Ist das möglich? Welche ImageMagick-Optionen kann ich verwenden?
image-processing
imagemagick
Javis Perez
quelle
quelle
Antworten:
Ich benutze immer:
in imagemagick sollte sein
oder in der neueren Version:
hoffe das ist nützlich.
Quelllink: http://www.yuiblog.com/blog/2008/12/05/imageopt-4/
Von @Fordi in den Kommentaren (vergessen Sie nicht, seinen Kommentar hochzublättern, wenn Sie möchten): Wenn Sie Unschärfe nicht mögen, verwenden Sie
-sampling-factor 4:2:0
stattdessen. Dadurch wird die Auflösung des Chroma-Kanals auf die Hälfte reduziert, ohne die Luminanzauflösung zu beeinträchtigen, an der Ihre Augen festhalten. Wenn Sie eine bessere Wiedergabetreue bei der Konvertierung wünschen, können Sie durch Angabe eine geringfügige Verbesserung erzielen, ohne die Dateigröße zu erhöhen.-define jpeg:dct-method=float
Verwenden Sie daher die genauere diskrete Gleitkomma-Cosinustransformation anstelle der Standardversion für schnelle Ganzzahlen.quelle
mogrify -strip -interlace Plane -gaussian-blur 0.05 -quality 85% *.jpg
. Stellen Sie sicher, dass Sie ein Backup haben, bevor Sie diesen Befehl ausführen. Es wird an Ort und Stelle schreiben.-strip
habe es für mich getan. Dankemogrify -strip -quality 75% *.jpg
. Strip ist großartig. 0 Qualitätsverlust und große Platzersparnis. Und Qualität bei 75% ist kaum von 100% zu unterscheiden, nimmt aber die Hälfte des Platzes ein.Ich verwende die Bildoptimierungsrichtlinien von Google Pagespeed Insights und für ImageMagick empfehlen sie Folgendes:
-sampling-factor 4: 2: 0
-strip -quality
85 [es kann variieren, ich verwende den Bereich 60-80, niedrigere Zahl bedeutet hier kleinere Datei]
-interlace
-colorspace RGB
Befehl in ImageMagick:
Mit diesen Optionen kann ich bis zu 40% der JPEG-Größe ohne großen sichtbaren Verlust einsparen.
quelle
Nur für diejenigen, die die Imagick-Klasse in PHP verwenden:
quelle
Einmal musste ich die Größe der Fotos von der Kamera für die Entwicklung ändern:
Befehl:
und ich kann mit meinem Monitor mit einer Auflösung von 1920 x 1080 keine Änderungen im Vollbildmodus sehen. Die Auflösung von 2048 eignet sich am besten für die Entwicklung von 10-cm-Fotos bei einer maximalen Qualität von 360 dpi. Ich will es nicht ausziehen.
edit: Mir ist aufgefallen, dass ich sogar viel bessere Ergebnisse bekomme, ohne zu verwischen. Ohne Unschärfe beträgt die Dateigröße 50% des Originals, aber die Qualität ist besser (beim Zoomen).
quelle
Ich würde eine nützliche Randnotiz und einen allgemeinen Vorschlag hinzufügen, um JPG und PNG zu minimieren.
Zunächst liest ImageMagick die JPEG-Komprimierungsstufe der Eingabe (oder besser "erraten" ...). Wenn Sie also überhaupt nichts hinzufügen
-quality NN
, sollte die Ausgabe dieselbe Stufe wie die Eingabe verwenden. Manchmal könnte ein wichtiges Merkmal sein. Andernfalls ist die Standardstufe-quality 92
(siehe www.imagemagick.org ).Der Vorschlag handelt von einem wirklich großartigen kostenlosen Tool ImageOptim , auch für den Batch-Prozess.
Sie können kleinere JPGs (und auch PNGs, insbesondere nach Verwendung des kostenlosen ImageAlpha [kein Batch-Prozess] oder des kostenlosen Pngyu, wenn Sie einen Batch-Prozess benötigen) erhalten.
Diese Tools sind nicht nur für Mac und Win sowie als Befehlszeile vorgesehen (ich empfehle, sie mit Brew zu installieren und dann in Brew-Formeln zu suchen).
quelle
Ich
-adaptive-resize 60%
habe dem vorgeschlagenen Befehl hinzugefügt , aber mit-quality 60%
.Das waren meine Ergebnisse
Ich bin mir nicht sicher, ob diese Konvertierung mein Image zu sehr zerstört, aber ich habe ehrlich gesagt nicht gedacht, dass meine Konvertierung wie Mist aussieht. Es war ein Weitwinkelpanorama und ich kümmerte mich nicht um akribische Hindernisse.
quelle
Unter den folgenden Links finden Sie eine Option in ImageMagick, mit der Sie die gewünschte Größe der Ausgabedatei zum Schreiben in JPG-Dateien festlegen können.
http://www.imagemagick.org/Usage/formats/#jpg_write http://www.imagemagick.org/script/command-line-options.php#define
-define jpeg:extent={size} As of IM v6.5.8-2 you can specify a maximum output filesize for the JPEG image. The size is specified with a suffix. For example "400kb".
Sie verlieren etwas an Qualität, indem Sie zusätzlich zu einem Verlust aufgrund einer Verringerung des Qualitätswerts von der Eingabe dekomprimieren und erneut komprimieren.
quelle
Habe hier selbst experimentiert und Junge macht diese gausische Unschärfe einen schönen Unterschied. Der letzte Befehl, den ich benutzte, war:
mogrify * -sampling-factor 4: 2: 0 -strip -quality 88 -interlace Plane -define jpeg: dct-method = float -colorspace RGB -gaussian-blur 0.05
Ohne die Gausianische Unschärfe bei 0,05 waren es ungefähr 261 KB, bei dem Bild, auf dem ich getestet habe, waren es ungefähr 171 KB. Der visuelle Unterschied auf einem 1440p-Monitor mit einem großen komplexen Bild macht sich erst bemerkbar, wenn Sie ganz hineinzoomen.
quelle
Hier ist eine Komplettlösung für diejenigen, die Imagick in PHP verwenden:
quelle
Wenn das Bild große Dimensionen aufweist, ist es schwierig, ohne Größenänderung gute Ergebnisse zu erzielen. Im Folgenden finden Sie eine Größenänderung von 60 Prozent, die für die meisten Zwecke nicht zu viel Bild zerstört.
Ich verwende dies mit gutem Ergebnis für Graustufenbilder (ich konvertiere aus PNG):
Ich verwende dies für gescannte Schwarzweißseiten, um sie zu Graustufenbildern zu bringen (die zusätzlichen Argumente bereinigen Schatten von vorherigen Seiten):
Ich benutze dies für Farbbilder:
quelle