Unsichtbare PNG-Bildebene, die nur als Hintergrund sichtbar ist

5405
Callum Carmicheal

Ich habe kürzlich ein sehr eigenartiges Bild mit merkwürdigen Eigenschaften gefunden. Das Bild ist ein PNG-Format und zeigt nur einen einfachen Vogel mit transparentem Hintergrund. Mein Freund schickte mir das Bild mit einfachen Anweisungen, um es zu speichern und als Hintergrund festzulegen. Original image with just the seagull

Nachdem ich das Bild als Hintergrund eingestellt habe, scheint ein zweites Bild zu zeigen, dass die Möwe auf einer Waffe steht: Background image with a secret layer?

Das hat mich zunächst sehr neugierig gemacht auf die Art des Bildes und wie man ein solches Bild machen kann. Ich habe das Bild in Photoshop geöffnet und nichts Außergewöhnliches erscheint - das Bild ist immer noch das gleiche wie die durchsichtige 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 hatte, als ich es als Desktop-Hintergrund eingestellt hatte - nachdem ich zum %AppData%\Microsoft\Windows\ThemesBild navigiert hatte, schien es dasselbe zu sein.

Warum zeigt dieses Bild eine separate verborgene Ebene oder ein vollständig separates Bild, wenn es als Windows-Desktop-Hintergrund eingestellt ist, verglichen mit der Anzeige oder Bearbeitung in Photoshop?

Direkter Link zum Bild.

48
Öffnen Sie es mit XnView, klicken Sie auf "Alpha-Kanal entfernen", und Sie sehen das vollständige Bild. Windows 7 konvertiert Hintergründe in JPEG und verliert dabei die Transparenz https://answers.microsoft.com/de-de/windows/forum/windows_7-desktop/transparent-gif-as-desktop-background-picture/f4e1def4-05f0-41a3-807c -3c908cee2f83? Page = 1 leonbloy vor 7 Jahren 6
Leider war der Link tot phuclv vor 6 Jahren 0

3 Antworten auf die Frage

59
Nihal

Ich vermute, es war das, was in diesem Artikel des Smashing Magazine "Dirty Transparency" 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 aufweisen. Dies bedeutet, dass die Farbe die ursprünglichen Informationen beibehält, jedoch 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 zwischen 0 und 255 liegen, in GIFs ist sie entweder zu 100% transparent oder undurchsichtig. Um etwas zu rendern, beispielsweise 50% Transparenz, müssen Sie noch die RGB-Werte kennen, daher wird der Wert gespeichert. Die meisten Bildbearbeitungsprogramme verwerfen diese RGB-Informationen, wenn eine vollständig transparente Farbe (einschließlich Photoshop) gespeichert wird.

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ählen Sie einen aus: Fotofreebies oder SuperPNG . SuperPNG scheint neuer und weniger überladen zu sein.

Warum funktioniert der Trick? Tapeten müssen undurchsichtig sein, da es nichts "dahinter" gibt, das sie zeigen können, richtig? Ich schätze, dass Windows die Informationen des Alphakanals verwirft und dabei die verborgenen RGB-Werte anzeigt.

Ich habe gerade versucht, was Sie sagten, indem ich die Transparenzebenenmaske (Alphakanal) entfernte, die mir nie in den Sinn gekommen war - dadurch konnte ich den Effekt wiederholen. Dies ist eine sehr coole Art und Weise, Hintergründe zu erstellen. Ich denke, ich werde sehr bald seine Trolling-Fähigkeiten erkunden: D Callum Carmicheal vor 7 Jahren 5
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 enthält, z. B. einen weißen Hintergrund. Paul vor 7 Jahren 15
@ Paul Übereinstimmend, Außer dass es sich um die definierte Hintergrundfarbe für den Desktop handelt, dieselbe Farbe, die verwendet wird, wenn das Bild nicht gestreckt oder gekachelt ist und zu klein ist, um den Desktop auszufüllen. Die Metapher ist, dass sich die Tapete auf einer unifarbenen Oberfläche oder Wand befindet. trlkly vor 7 Jahren 5
Ich wäre sehr überrascht, wenn Adobe Photoshop dazu ein Plug-In benötigen würde - ich würde erwarten, dass es ähnliche Steuerelemente wie GIMP bietet, z. B. das Anpassen der Alpha-Werte über Kurven oder Ebenenwerkzeuge (das sind nur zwei der vielen Möglichkeiten) um die transparenten Teile sichtbar zu machen). Michael Schumacher vor 7 Jahren 3
@MichaelSchumacher Sie werden überrascht sein, wie Photoshop in bestimmten Bereichen fehlen kann. Fairerweise habe ich keine Ahnung, ob die aktuelle CC-Version dies bereits unterstützt. Ich entschied mich für meine permanent lizenzierte PS, daher ist meine Version fast veraltet. Nihal vor 7 Jahren 2
@Paul Sie müssen das Alpha jedoch nicht auf 0 setzen. Alpha 1 ist auch unglaublich transparent und wird den meisten dieser Funktionen zum automatischen Verwerfen entgehen. T. Sar vor 7 Jahren 2
Um zu erfahren, was @ CallumCarmicheal gesagt hat, gehen Sie in Photoshop zu Ebene -> Ebenenmaske -> Von Transparenz und dann zu Ebene -> Layer Maker - Deaktivieren. Chris Haas vor 7 Jahren 1
@Paul Eine andere Antwort legt nahe, dass dieses Verhalten von der PNG-Spezifikation zugelassen wird. Wenn ja, dann scheint das ein Fehler in der Spezifikation zu sein. Marnix Klooster vor 7 Jahren 1
13
Blerg

Um Nihals Antwort hinzuzufügen, kann diese mit dem "Anti-Erase" -Pinsel im GIMP reproduziert werden. Mit dem Erase-Pinsel kann ein Alphakanal hinzugefügt oder entfernt werden, wenn das Bild ein unterstützendes Format verwendet (halten Sie die Alt-Taste gedrückt, um zwischen dem Löschen und dem Löschen zu wechseln).

Für Krita, können Sie dies tun: Layer > Split Alpha > Alpha into Mask. Danach können Sie den Kanal der Transparenzmaske 1, der gerade erstellt wurde, ausblenden oder löschen. Das gesamte Bild wird angezeigt.

Da der Windows-Hintergrund nichts hinter sich haben kann, wird wahrscheinlich nur die Transparenz entfernt und das Bild ohne sie angezeigt (schnelles und schmutziges 32-Bit-Bild mit 24 Bit, wie es aussieht).

3
hildred

Ein Punkt der Klarstellung: Dies ist kein Fehler, es wird in der PNG-Spezifikation Verhalten angegeben. Im Einzelnen heißt es in der Spezifikation, dass, wenn ein Betrachter oder Konverter Transparenz nicht verstehen kann, Transparenz nicht für einen Kontext geeignet ist oder der Alphakanal nicht verwendet werden kann. Weiterhin verlangt 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 seit dem Lesen der Spezifikation einige Jahre vergangen.)

Könnten Sie bitte die entsprechenden Passagen aus der Spezifikation finden? Weil ich dies nicht unter https://www.w3.org/TR/PNG/ finden kann. Vielen Dank! Marnix Klooster vor 7 Jahren 1