Capa de imagen PNG invisible que solo es visible como fondo


48

Recientemente me encontré con una imagen muy peculiar, con propiedades extrañas. La imagen está en formato PNG y solo muestra un pájaro simple con un fondo transparente. Mi amigo me envió la imagen con instrucciones simples solo para guardarla y establecerla como mi fondo.

Imagen original con solo la gaviota

Después de configurar la imagen como mi fondo, una segunda imagen parece mostrar que, de hecho, la gaviota parada en un arma:

Imagen de fondo con una capa secreta?

Al principio, esto me hizo sentir mucha curiosidad por la naturaleza de la imagen y cómo hacerla. Abrí la imagen en Photoshop y no aparece nada fuera de lo común: la imagen sigue siendo la misma que la gaviota transparente, no hay capas o máscaras ocultas que la hagan invisible. Después de verificar la imagen en Photoshop, pensé que Windows realizó cambios en el archivo al configurarlo como fondo de escritorio, después de navegar a %AppData%\Microsoft\Windows\Themesla imagen parecía ser la misma.

¿Por qué esta imagen muestra una capa oculta separada o una imagen completamente separada cuando se configura como fondo de escritorio de Windows en comparación con la vista o edición en Photoshop?


66
Ábralo con XnView, haga clic en "Eliminar canal alfa" y verá la imagen completa. Windows 7 convierte los fondos a JPEG, la pérdida de la transparencia answers.microsoft.com/en-us/windows/forum/windows_7-desktop/...
leonbloy

Respuestas:


59

Supongo que es lo que se llamó "Transparencia sucia" en este artículo de la revista Smashing .

Esencialmente, cualquier color en PNG transparentes puede describirse mediante un valor RGBA, donde RGB representa los canales Rojo, Verde y Azul y A representa Alfa. Los colores "invisibles" pueden tener cualquier valor RGB + 0 Alfa, lo que significa que el color retendrá la información original, pero se volverá transparente porque su alfa se establece en 0.

¿Por qué querrías almacenar los valores RGB cuando se usa Alpha? Por lo tanto, puede obtener bordes suaves y colores transparentes, a diferencia de los bordes irregulares en los GIF de fondo transparente. La transparencia en PNG puede ir de 0 a 255, en GIF es 100% transparente u opaco. Para representar algo con, digamos, 50% de transparencia, aún necesitará conocer los valores RGB, por lo tanto, el valor se almacena. La mayoría del software editor de imágenes descarta esa información RGB al guardar un color totalmente transparente, incluido Photoshop.

No puedo hablar de las versiones CC, pero para ver los colores "invisibles" en las versiones anteriores de Photoshop necesitará un complemento. Elige uno: Photofreebies o SuperPNG . SuperPNG parece más reciente y menos abarrotado.

¿Por qué funciona el truco? Los fondos de pantalla deben ser opacos porque no hay nada "detrás" de ellos para mostrar, ¿verdad? Supongo que Windows descarta la información del canal alfa, revelando los valores RGB ocultos en el proceso.


66
Acabo de probar lo que dijiste al quitar la máscara de capa de transparencia (canal alfa), que nunca se me había ocurrido; al hacerlo pude replicar el efecto. Esta es una forma genial de crear fondos, creo que exploraré sus capacidades de curricán muy pronto: D
Callum

15
Yo diría que esto es un error en Windows. Si el valor alfa de un píxel es 0, entonces el píxel es transparente y los valores RGB no deberían importar. Windows debería representar una imagen que contiene transparencia sobre otra cosa, por ejemplo, un fondo blanco.
Paul

55
@Pablo. De acuerdo, excepto que sería el color de fondo definido para el escritorio, el mismo color que se usa si la imagen no está estirada o en mosaico y es demasiado pequeña para llenar el escritorio. La metáfora es que el fondo de pantalla está encima de una superficie o pared de un color sólido.
Trlyly

3
Me sorprendería mucho si Adobe Photoshop necesitara un complemento para lograr esto: esperaría que ofreciera controles similares a GIMP, por ejemplo, ajustar los valores alfa mediante herramientas de curvas o niveles (eso es solo dos de las muchas maneras para hacer visibles las partes transparentes).
Michael Schumacher

2
@MichaelSchumacher Te sorprendería cómo puede faltar Photoshop en ciertas áreas. Para ser justos, no tengo idea si la versión actual de CC ya lo admite. Decidí seguir con mi PS con licencia perpetua, por lo que mi versión ya está casi obsoleta.
Rhaenys

13

Para agregar a la respuesta de Nihal , esto se puede reproducir utilizando el pincel "anti-borrado" en el GIMP. El pincel de borrado puede agregar o eliminar un canal alfa si la imagen está usando un formato que lo admite (mantenga presionada la tecla Alt para alternar entre borrar y borrar).

Para Krita, usted puede hacer esto: Layer > Split Alpha > Alpha into Mask. Después de hacer eso, puede ocultar o eliminar el canal de Transparencia Máscara 1 que acaba de crear y verá la imagen completa.

Dado que el fondo de Windows no puede tener nada detrás, probablemente solo esté eliminando la transparencia y mostrando la imagen sin ella (imagen rápida y sucia de 32 bits a 24 bits desde el aspecto).


3

Un punto de aclaración: esto no es un error, se especifica el comportamiento en la especificación png. Específicamente, la especificación establece que si un espectador o convertidor no puede entender la transparencia o la transparencia no es apropiada para un contexto o el uso del canal alfa puede ser ignorado. Además, la especificación exige que todos los generadores de imágenes establezcan los colores transparentes para que la imagen sea útil si se ignora el canal alfa. (Mi paráfrasis, he pasado un par de años desde que leí las especificaciones).


1
¿Podría intentar encontrar los pasajes relevantes de la especificación? Porque no puedo encontrar esto en w3.org/TR/PNG . ¡Gracias!
MarnixKlooster ReinstateMonica
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.