Unsichtbare PNG-Bildebene, die nur als Hintergrund sichtbar ist

48

Ich bin vor kurzem auf ein sehr eigenartiges Bild mit seltsamen Eigenschaften gestoßen. Das Bild ist im PNG-Format und zeigt nur einen einfachen Vogel mit einem transparenten Hintergrund. Mein Freund hat mir das Bild mit einfachen Anweisungen geschickt, um es zu speichern und als Hintergrund festzulegen.

Originalbild mit nur der Möwe

Nachdem ich das Bild als Hintergrund eingestellt habe, erscheint ein zweites Bild, das zeigt, dass die Möwe tatsächlich auf einer Waffe steht:

Hintergrundbild mit einer geheimen Ebene?

Das hat mich zunächst sehr neugierig gemacht auf die Natur des Bildes und wie man ein solches Bild macht. Ich habe das Bild in Photoshop geöffnet und es erscheint nichts Außergewöhnliches - das Bild ist immer noch das gleiche wie bei der transparenten Möwe, es gibt keine versteckten Ebenen oder Masken, um es unsichtbar zu machen. Nachdem ich das Bild in Photoshop überprüft hatte, hatte ich gedacht, dass Windows Änderungen an der Datei vorgenommen hat, als ich sie als Desktop-Hintergrund festgelegt habe - nachdem ich zu %AppData%\Microsoft\Windows\Themesdem Bild navigiert hatte, schien es dasselbe zu sein.

Warum zeigt dieses Bild eine separate ausgeblendete Ebene oder ein vollständig separates Bild, wenn es als Windows-Desktophintergrund festgelegt wird, im Vergleich zum Anzeigen oder Bearbeiten in Photoshop?

Callum
quelle
6
Öffnen Sie es mit XnView, klicken Sie auf "Alphakanal entfernen" und Sie sehen das vollständige Bild. Windows 7 konvertiert Hintergründe in JPEG und verliert Transparenz answers.microsoft.com/en-us/windows/forum/windows_7-desktop/…
leonbloy

Antworten:

59

Ich vermute, es ist das, was in diesem Artikel aus dem Smashing Magazine "Schmutzige Transparenz" genannt wurde .

Grundsätzlich kann jede Farbe in transparenten PNGs durch einen RGBA-Wert beschrieben werden, wobei RGB für die Kanäle Rot, Grün und Blau und A für Alpha steht. Die "unsichtbaren" Farben können beliebige RGB-Werte + 0 Alpha haben, was bedeutet, dass die Farbe die ursprünglichen Informationen beibehält, aber als transparent dargestellt wird, da das Alpha auf 0 gesetzt ist.

Warum sollten Sie die RGB-Werte speichern, wenn Alpha verwendet wird? So erhalten Sie glatte Kanten und transparente Farben - im Gegensatz zu gezackten Kanten in GIFs mit transparentem Hintergrund. Die Transparenz in PNG kann von 0 bis 255 gehen, in GIFs ist sie entweder 100% transparent oder undurchsichtig. Um etwas mit einer Transparenz von beispielsweise 50% zu rendern, müssen Sie die RGB-Werte noch kennen, daher wird der Wert gespeichert. Die meisten Bildbearbeitungsprogramme, einschließlich Photoshop, verwerfen diese RGB-Informationen, wenn sie eine vollständig transparente Farbe speichern.

Ich kann nicht für CC-Versionen sprechen, aber um die "unsichtbaren" Farben in älteren Photoshop-Versionen zu sehen, benötigen Sie ein Plugin. Wähle eins: Fotofreebies oder SuperPNG . SuperPNG scheint aktueller und übersichtlicher zu sein.

Warum funktioniert der Trick? Tapeten müssen undurchsichtig sein, weil nichts "dahinter" zu sehen ist, oder? Ich vermute, dass Windows die Alphakanalinformationen verwirft und dabei die verborgenen RGB-Werte aufdeckt.

Rhaenys
quelle
6
Ich habe gerade versucht, was Sie gesagt haben, indem ich die Transparenzebenenmaske (Alpha-Kanal) entfernt habe, die mir noch nie in den Sinn gekommen war. Auf diese Weise konnte ich den Effekt replizieren. Dies ist eine sehr coole Art , Hintergründe zu machen ich glaube , ich sehr bald seine Trolling Fähigkeiten zu erkunden werden: D
Callum
15
Ich würde sagen, das ist ein Fehler in Windows. Wenn der Alpha-Wert eines Pixels 0 ist, ist das Pixel transparent und die RGB-Werte sollten keine Rolle spielen. Windows sollte ein Bild rendern, das Transparenz über etwas anderem enthält, z. B. einen weißen Hintergrund.
Paul
5
@Paul. Einverstanden, außer es wäre die definierte Hintergrundfarbe für den Desktop, dieselbe Farbe, die verwendet wird, wenn das Bild nicht gedehnt oder gekachelt ist und zu klein ist, um den Desktop auszufüllen. Die Metapher ist, dass die Tapete auf einer Oberfläche oder einer Wand einer Normallackfarbe ist.
Trlkly
3
Es würde mich sehr überraschen, wenn Adobe Photoshop ein Plug-In benötigt, um dies zu erreichen. Ich würde erwarten, dass es Steuerelemente ähnlich wie GIMP bietet, z um die transparenten Teile sichtbar zu machen).
Michael Schumacher
2
@MichaelSchumacher Sie wären überrascht, wie wenig Photoshop in bestimmten Bereichen vorhanden sein kann. Um fair zu sein, ich habe keine Ahnung, ob die aktuelle CC-Version dies bereits unterstützt. Ich habe mich entschlossen, an meinem PS mit unbefristeter Lizenz festzuhalten, sodass meine Version mittlerweile fast veraltet ist.
Rhaenys
13

Um Nihals Antwort zu ergänzen , kann dies mit dem "Anti-Erase" -Pinsel in der GIMP reproduziert werden. Mit dem Löschpinsel können Sie einen Alphakanal hinzufügen oder entfernen, wenn das Bild ein unterstütztes Format verwendet. Halten Sie die Alt-Taste gedrückt, um zwischen Löschen und Antilöschen zu wechseln.

Für Krita, können Sie dies tun: Layer > Split Alpha > Alpha into Mask. Anschließend können Sie den soeben erstellten Kanal für Transparenzmaske 1 ausblenden oder löschen, um das vollständige Bild anzuzeigen.

Da der Windows-Hintergrund nichts dahinter haben kann, wird wahrscheinlich nur die Transparenz entfernt und das Bild ohne sie angezeigt (schnelles und unsauberes 32-Bit-Bild bis 24-Bit-Bild, so wie es aussieht).

Blerg
quelle
3

Ein Punkt der Klarstellung: Dies ist kein Fehler, es ist das Verhalten in der PNG-Spezifikation angegeben. Insbesondere heißt es in der Spezifikation, dass der Alphakanal ignoriert werden kann, wenn ein Betrachter oder Konverter Transparenz nicht versteht oder Transparenz für einen Kontext oder eine Verwendung nicht geeignet ist. Ferner fordert die Spezifikation, dass alle Bildgeneratoren die transparenten Farben so einstellen, dass das Bild nützlich ist, wenn der Alphakanal ignoriert wird. (Meine Umschreibung: Ich habe die Spezifikation vor ein paar Jahren gelesen.)

hildred
quelle
1
Könnten Sie bitte versuchen, die relevanten Passagen aus der Spezifikation zu finden? Weil ich das in w3.org/TR/PNG nicht finden kann . Vielen Dank!
MarnixKlooster ReinstateMonica