2017-05-15 3 views
0

Ich versuche eine Imagemagick-Operation zu finden, um die Bilddateigröße zu verringern, indem die Qualität verringert wird.Verkleinern der Bilddateigröße mit imageMagick

Dieser Vorgang funktioniert

convert -fuzz 1% -trim -quality 90 -limit memory 32MiB original.jpg converted.jpg 

den Qualitätsfaktor Reduzierung wird die image verringern. Gibt es eine andere Möglichkeit, dasselbe zu erreichen und ein Limit von MAX_SIZE hinzuzufügen?

Zum Beispiel 5Mb Bild sollte

+0

Aus Interesse sollten Sie Ihre Befehlsreihenfolge sortieren. In den meisten Fällen handelt es sich um "Eingabeoptionen konvertieren". Sie können normalerweise mit einer falschen Reihenfolge in V6 durchkommen, aber V7 ist strenger. Dies könnte Ihnen einige Verwirrung ersparen, wenn/wenn Sie auf V7 vorrücken. – Bonzo

+0

@Bonzo Danke, das werde ich mir merken – akash

Antwort

2

Sie -define jpeg:extent=... verwenden würde zu 2 MB verkleinert werden.

Hier ist ein Beispiel mit einem großen Bild von zufälligen Daten, die eine sehr große Dateigröße benötigen, um es mit jeder angemessenen Qualität genau darzustellen.

convert -size 10000x1000 xc:gray +noise random -define jpeg:extent=2MB out.jpg 

Ergebnis

-rw-r--r-- 1 mark staff 1844050 15 May 10:44 out.jpg 

Und überprüfen Sie die Qualität verwendet:

identify -format "%Q" out.jpg 
21 

Ein weiteres Beispiel:

convert -size 10000x1000 xc:gray +noise random -define jpeg:extent=400kb out.jpg 

Ergebnis

-rw-r--r-- 1 mark staff 377757 15 May 10:44 out.jpg 

Und die Qualität überprüfen verwendet:

identify -format "%Q" out.jpg 
5 
+0

Das ist großartig! Danke Mann – akash

0

Neben Qualität, ein wichtiger Faktor ist Chroma-Subsampling. Standardmäßig verwendet IM eine "halbierte Chroma", aber Sie können "geviertelte Chroma" verwenden. Einzelheiten finden Sie unter this question.

Überprüfen Sie die jpeg:extent option in IMs convert:

Sie können auch Google's Guetzli verwenden. Soweit ich es verstehe, versucht es verschiedene JPEG-Kodierungsoptionen, um die Dateigröße zu reduzieren, während die visuelle Akzeptanz des Ergebnisses überprüft wird.

+0

Bitte beachten Sie, dass die richtige IM 6 Syntax ein Rasterbild vor dem Anwenden von Einstellungen und Operatoren liest. Also lesen Sie Ihre Eingabe gleich nach dem Konvertierungsbefehl. – fmw42