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.
Después de configurar la imagen como mi fondo, una segunda imagen parece mostrar que, de hecho, la gaviota parada en un arma:
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\Themes
la 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?
Respuestas:
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.
fuente
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).
fuente
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).
fuente