Die Einstellung der Anzahl der Farben ist der Kernparameter, der direkt bestimmt, wie viele Farben das konvertierte Bild aufbewahren kann. Die Auswirkungen spiegeln sich hauptsächlich in den folgenden Aspekten wider:
Wenn die Anzahl der Farben zu klein eingestellt ist (z. B. 16 oder 32), wird eine große Anzahl von Farben im Bild verschmolzen oder angenähert, und die Details werden leicht verzerrt, insbesondere für fototbasierte Bilder. Diese Verzerrung manifestiert sich normalerweise als:
Farbblockierung: Der ursprünglich glatte Farbübergang wird abrupt.
Farbdrift: Die Farbe ist weit vom Originalbild entfernt und der visuelle Effekt wird stark reduziert.
Wenn die Anzahl der Farben auf 128 oder 256 steigt, kann das Bild den größten Teil der Farbpegel beibehalten, und die bloße Augenbeobachtung ist fast das gleiche wie das Originalbild. Dies bedeutet aber auch, dass die Bilddateigröße nahe am ursprünglichen Truecolor -Bild liegt und der Komprimierungsvorteil verringert wird.
Um die beste Balance zwischen Bildqualität und Leistung zu finden, müssen wir sie in Kombination mit Bildinhalten und Nutzungsszenarien beurteilen. Hier sind einige praktische Vorschläge:
Icons und grafische Schnittstellenelemente (UI) Elemente : Kann auf 16 ~ 64 Farben eingestellt werden. Da es weniger Farben dieser Art von Bild selbst gibt, ist der Verlust nach der Konvertierung gering.
Fotos, Gradienten -Hintergrundbilder : Es wird empfohlen, auf 128 oder 256 Farben einzustellen. Dies wird die Bilddetails besser bewahren.
Das Aktivieren von $ dither = true führt einen Farb -Jitter -Algorithmus ein und simuliert reichere visuelle Hierarchien mit einer kleinen Menge Farben. Insbesondere wenn die Anzahl der Farben klein ist, können Farbblöcke und Kontur -Jagging erheblich reduziert werden.
$image = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
imagetruecolortopalette($image, true, 64);
Dieser Code beschränkt das Bild auf 64 Farben und schaltet Jitter ein, was für Szenen geeignet sein kann, die eine Bildgröße erfordern, aber eine bestimmte Qualität beibehalten möchten.
Für komplexe Anwendungen kann die Anzahl der Farben durch die dynamische Analyse der Bildfarbverteilung bestimmt werden. Führen Sie beispielsweise die Farbhistogrammanalyse auf dem Bild durch, bestimmen Sie die Farbvielfalt und passen Sie den darauf basierenden Wert $ nColors an.
Missverständnis: Je weniger Farbe, desto besser <br> Nicht alle Bilder eignen sich zum Komprimieren von Farben, insbesondere für Bilder, die feine Details erfordern, da übermäßige Komprimierung schwere Verzerrungen verursachen kann.
Missverständnis: Jitter einschalten ist immer besser <br> Während Jitter die visuellen Effekte verbessern kann, kann es zusätzliches Rauschen einführen, das die Lesbarkeit des Bildes in einigen Kontexten beeinflusst. Entscheiden Sie, ob Sie es gemäß den Anforderungen aktivieren möchten.
Vorschläge: Mit der Optimierung der Dateiformat zusammenarbeiten <br> Das Speichern des Palettenbildes als PNG-8-Format kann das Volumen weiter verringern. Verwenden Sie beispielsweise die Funktion imagePng (), um auszugeben.
imagepng($image, 'https://gitbox.net/images/optimized.png', 9);