2016-06-16 11 views
0

Ok, also habe ich versucht, den imagemagick Befehl zu verwenden:Wie kann die Größe einer Interlaced-PNG-Datei kleiner als die ursprüngliche Datei sein?

"convert picA.png -interlace line picB.png" 

eine Interlace-Version meiner .png Bilder zu machen. Die meiste Zeit, ich habe das resultierende Bild ist größer als das Original, das ist irgendwie normal. Bei bestimmten Bildern ist die resultierende Bildgröße jedoch kleiner.

Also frage ich mich nur, warum passiert das? Ich möchte wirklich nicht, dass mein neues Bild wegen des Befehls an Qualität verliert.

Gibt es auch Kompatibilitätsprobleme mit interlaced .png Bild?

EDIT: Ich denke mein Problem ist, dass das Originalbild nicht so gut wie möglich komprimiert wurde.

Antwort

1

Also frage ich mich nur, warum passiert das?

Aus Abschnitt Interlacing and pass extraction der PNG-Spezifikation.

Scanlinien, die eine ganzzahlige Anzahl von Bytes nicht vollständig ausfüllen, werden wie in 7.2: Scanlines definiert aufgefüllt.

HINWEIS Wenn das Referenzbild weniger als fünf oder weniger als fünf Zeilen enthält, sind einige Durchgänge leer.

Ich würde das Verhalten übernehmen Ihr erleben, ist das Ergebnis der Adam7 method erfordern zusätzliche Polsterung.

+0

Ok, das ist wahrscheinlich zu viel Info für mich. Am Ende möchte ich nur wissen, ob diese verringerte Dateigröße zu Qualitätsverlust führte. – CSDD

+0

@CSDD: PNG Kompression ist * immer * verlustfrei: ".. ein erweiterbares Dateiformat für die verlustfreie, portable, gut komprimierte Speicherung von Rasterbildern .." (aus [Die Spezifikationen] (http: //www.w3. org/TR/PNG /)). Es ist wahrscheinlicher, dass einige Ihrer Originaldateien nicht so gut komprimiert wurden. – usr2564301

+0

@Rad Lexus Ich sehe. Stellen Sie sich vor, dass dies auch ein Komprimierungsproblem ist. Wenn ich ein Programm namens Png Optimizer verwende, um es zu komprimieren, habe ich 67% der ursprünglichen Größe. Also ich denke Problem gelöst. Vielen Dank. – CSDD