Wie konvertiert man PNG in 8-bit-PNG mit PHP GD-Bibliothek
Ich will eine routine zu schreiben, die nimmt PNG-Bild-Pfad als parameter und konvertieren Sie das Bild in 8-bit-PNG-Bild. Ich muss mit PHP GD-Bibliothek für diese.
- Was ist Ihre Frage? Es ist schön, dass Sie uns sagen, dass Sie Ihre TODO-Liste für den Tag, aber das heißt nicht, dass es eine Frage.
- ImageMagick wäre eine bessere option sein.
- Warum? (Neugierig)
- Ich war mir nicht sicher, ob es möglich war, in GD, aber @Wh1T3h4Ck5 bewiesen mich nicht falsch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren PNG-Bild in 8-bit-PNG-verwenden Sie diese Funktion, ich habe gerade
Funktion convertPNGto8bitPNG ()
Parameter
Hinweis
Ich empfehlen, um sicherzustellen, dass
$sourcePath
existiert und$destPath
beschreibbar ist, bevor Sie diesen code ausführen. Vielleicht diese Funktion funktioniert nicht mit einigen transparenten Bilder.Nutzung
Beispiel (original -> 8-bit)
(Quelle: pfc.png) URSPRÜNGLICHE PNG-BILD
(Ziel: pfc8bit.png) KONVERTIERT PNG-BILD (8-bit)
Hoffe jemand findet dies sehr hilfreich.
It offers GIF-like 1-bit transparency. Pixels are either solid or completely transparent, but never partially see-through
. Sie nicht verwenden können, die alpha-Transparenz gegen PNG-8-Bildern, weil es nicht die alpha-Ebene (wie z.B. PNG 32-bit). In anderen Worten, PNG-8 verwendet solid color transparent (genau das, was GIF nicht)Statt GD-library habe ich dringend empfohlen, pngquant 1.5+ Kommandozeile mit
exec()
oderpopen()
Funktionen.GD-Bibliothek hat sehr schlechte Qualität der palette generation-code.
Gleiche Bild wie in der anderen Antwort, die gleiche Dateigröße wie die GD-Bibliothek, aber Umgerechnet
pngquant
lediglich 100 Farben (nicht 256):pngquant unterstützt alpha-Transparenz sehr gut.