Ich habe ein Problem damit, wie Photoshop beim Exportieren als PNG vollständig transparente Pixel handhabt. Das heißt, die roten, grünen und blauen Farbkanäle vollständig transparenter Pixel werden als 0 anstelle der in Photoshop definierten Farbe gespeichert .
Zum Beispiel: Ich habe eine PSD-Datei mit einer Ebenenmaske. Einige farbige Teile des Bildes werden durch die Ebenenmaske vollständig transparent gemacht, aber ich möchte weiterhin, dass die ursprünglichen Farbkanäle in die PNG-Datei geschrieben werden und nicht nur 0.
(Ja, das PNG - Format selbst tut auch RGB - Daten enthält , die für volltransparente Pixel. Dies ist ein Problem mit Photoshop, nicht PNG.)
Wenn Sie sich fragen, warum Farbdaten wichtig sind, wenn ein Pixel vollständig transparent ist, finden Sie hier einige Anwendungsfälle:
- Das PNG wird mit einer höheren Auflösung abgetastet, als es gespeichert ist, und die abgetasteten Werte werden zwischen benachbarten Pixeln interpoliert. Dies kann zu einem schwachen schwarzen "Heiligenschein" um das Bild führen, wenn die Interpolation nicht durch Transparenz gewichtet wird. (In meinem Fall wird dieses Upsampling auf der GPU durchgeführt, was aus Performancegründen nicht durch Transparenz belastet wird.)
- Die Rot-, Grün-, Blau- und Alpha-Kanäle in der PNG-Datei werden zu anderen Zwecken als zum Speichern von Farbinformationen verwendet. (In meinem Fall verwende ich alle vier Kanäle zum Speichern von Daten, die für Echtzeit-Beleuchtungsberechnungen benötigt werden.)
Danke für Ihre Hilfe!
BEARBEITEN
Ich werde versuchen, das Problem zu erklären, das ich mit der Verwendung einiger visueller Hilfsmittel habe. Transparente Dinge zu zeigen ist schwierig, aber hoffentlich macht dies mein Problem klarer:
Ich habe eine PSD-Datei mit einer Ebene und einer Ebenenmaske. Die Farbebene sieht folgendermaßen aus:
Die Ebenenmaske sieht folgendermaßen aus:
Wenn ich diese PSD-Datei als PNG exportiere, erhalte ich Folgendes:
(Die weißen Bereiche sind in der Tat transparent; sie sehen vor dem weißen Hintergrund nur weiß aus.)
Sie fragen sich vielleicht: Was ist das Problem? Das sieht richtig aus! Nun, das Problem liegt in den Farbinformationen, die in diesen transparenten Pixeln gespeichert sind. Mithilfe eines Werkzeugs, mit dem die Deckkraftdaten aus dem PNG entfernt werden, während das RGB intakt bleibt, können wir die Farbinformationen anzeigen, die Photoshop in den transparenten Pixeln speichert:
Wie Sie sehen, hat Photoshop die Farbinformationen in den transparenten Pixeln durch Schwarz ersetzt. Da die Opazitätsdaten aus dem PNG entfernt wurden, möchte ich, dass sie genau wie die ursprüngliche Farbebene aussehen: