Wie kann ich Photoshop anweisen, die RGB-Farbe vollständig transparenter Pixel beim Export als PNG beizubehalten?

12

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:

Bildbeschreibung hier eingeben

Die Ebenenmaske sieht folgendermaßen aus:

Bildbeschreibung hier eingeben

Wenn ich diese PSD-Datei als PNG exportiere, erhalte ich Folgendes:

Bildbeschreibung hier eingeben

(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:

Bildbeschreibung hier eingeben

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:

Bildbeschreibung hier eingeben

Walt D
quelle
Ein Beispiel dafür zu zeigen, was Sie gerade erleben, könnte hilfreicher sein. Vor allem, weil der transparente Teil des PNG keine Farbinformationen enthalten sollte. Wie sparst du das PNG aus? Verwenden Sie "Für das Web speichern" und haben Sie die Option "Transparenz" aktiviert? Ich weiß, dass es sich einfach anhört, aber nicht sicher ist, wie Sie Ihre Ergebnisse erzielen.
ErickP
Ja, ich habe keine Beispielbilder gepostet, da Sie das Problem nicht sehen können (ohne das PNG in ein Malprogramm zu laden und die Transparenz zu deaktivieren), da das Problem nur bei Pixeln auftritt, die vollständig transparent sind. Ich werde sehen, ob ich einen Weg finden kann, um mir vorzustellen, wovon ich spreche.
Walt D
Wenn Sie jedoch sagen, dass der transparente Teil des PNG keine Farbinformationen enthalten soll, möchte ich, dass der transparente Teil des PNG Farbinformationen enthält. Ich weiß, das klingt komisch, aber es gibt bestimmte Anwendungen, wie die beiden, die ich oben erwähnt habe. (Und ja, PNG unterstützt Farbinformationen in seinen transparenten Bereichen vollständig. Ich verwende sie ständig in prozedural generierten PNGs. Es geht darum, wie Photoshop transparente Bereiche in PNGs speichert.)
Walt D
1
@ DA01 Ich glaube nicht, dass es sich um einen Fehler handelt, sondern vielmehr um eine Optimierung, die Photoshop durchführt (PNGs mit einheitlichen Farben belegen weniger Speicherplatz) und die meinen speziellen Anwendungsfall beeinträchtigt.
Walt D
1
@ErickP Danke, dass du versucht hast zu helfen, ich weiß das wirklich zu schätzen. :) Zum Glück sind GPUs heutzutage ziemlich Standard, und diese Art der Hochskalierung (bekannt als bilineare Interpolation) funktioniert bei allen genau gleich. Welche Lösung auch immer gefunden wird, sollte also universell funktionieren.
Walt D

Antworten:

10

Ich habe eine Lösung gefunden! Das SuperPNG- Plugin behält die RGB-Werte für transparente Pixel bei, solange Sie die Option "Transparent reinigen" nicht aktivieren .

Walt D
quelle
Ich bin neugierig, ob es ein Photoshop CC-Äquivalent zu SuperPNG gibt.
Marcel Wilson