Acabo de pasar mucho tiempo investigando esto. Hace tiempo que uso Photoshop para copiar texturas semitransparentes mientras hago prototipos (con el destino de Axure RP).
Ahora, he intentado usar la nueva API del portapapeles en html 5. He diseccionado los archivos PNG que se generan con este proceso.
Si utilizo el portapapeles (con una marquesina rectangular) para copiar una textura semitransparente en el navegador con la API del portapapeles, establece el byte alfa en FF (completamente opaco).
Si utilizo la API de arrastrar y soltar para copiar un archivo PNG 24 "Guardar como Web" en el navegador, funciona como se espera y los píxeles transparentes funcionan (y el byte alfa no se fuerza a FF).
Nota: Aunque Photoshop diga que es de 24 bits, en realidad lo exporta como de 8 bits todavía (confirmado).
1 votos
Por favor, explíquese. ¿Qué está copiando exactamente? El
.png
o su mapa de bits mientras está abierto en un editor/visualizador? Si es el archivo, entonces Photoshop (debería) ser capaz de abrir el archivo correctamente, con transparencia y todo. Si se trata de los píxeles reales de la imagen, entonces depende del programa de origen y de si pone los datos de transparencia en el portapapeles o no.0 votos
Depende del sistema operativo. El portapapeles parece que no puede contener imágenes semitransparentes, pero algunos navegadores mantienen el enlace de la imagen en su lugar - esto, cuando se pega, tiene la transparencia sin alterar.
0 votos
Si abres un archivo .png con transparencia en MS Paint (Windows 10) o Firefox 60.0.2 el fondo se muestra como blanco. Si abre el mismo archivo en IrfanView o Chrome 67.0.3396.87 el fondo se muestra como negro. Si abre el mismo archivo en Paint.NET, el fondo se muestra como un tablero de ajedrez gris y blanco. Si lo abres con Paint 3D el fondo se muestra en color beige. Si copias desde MS Paint, el fondo se vuelve blanco opaco. Si copias desde Paint.NET el fondo transparente SE CONSERVA en el portapapeles de Win10, así que lo que ocurra dependerá del programa en el que lo pegues.