2010-11-15 22 views
11

Aquí hay una imagen: Gradient1 http://adamhaskell.net/img/gradient1.png
Esta imagen es un gradiente simple de negro a transparente guardado en RGBA PNG completo.Transparencia alfa en imágenes indexadas png

aquí es la misma imagen, se convirtieron al indexadas-alfa PNG por GIMP (Photoshop produce el mismo resultado)
Gradient2 http://adamhaskell.net/img/gradient1b.png
Como se puede ver, el gradiente es ahora un medio-opaco, medio-transparente.

aquí es la misma imagen de nuevo, sólo que esta vez se convirtió en indexada-alfa PNG por un script PHP que escribí:
Gradient3 http://adamhaskell.net/img/gradient1c.png

Así que mi pregunta es: ¿Por qué son GIMP y Photoshop no puede apoyar parcial transparencia en las imágenes indexadas, cuando el script PHP muestra claramente que tal imagen se puede crear sin problemas?
¿Hay algo "incorrecto" en una imagen cuya paleta contiene información alfa?
Una pregunta más relacionada con la programación: ¿Funciona esta transparencia en la última imagen en Internet Explorer 6?

+0

'optipng -force' lo guarda correctamente como indexado alfa. –

Respuesta

3

Finalmente encontré la respuesta real: hay una entrada de metadatos que le permite definir el valor alfa de cada color en la tabla de colores. La mayoría de los programas gráficos no hacen uso de esto, pero existe y se puede usar, en particular, por GD.

+0

Lo hiciste a mano o con un plugin, porque no puedo imaginar hacer esto para las imágenes existentes a mano. –

+0

Uso GD para todas mis necesidades de imagen programable;) –

+0

GD? ¿Debo ser recordado o simplemente informado? (¿Diseño no gráfico, o?) –

1

Sí, sé lo que quieres decir. Fireworks es el único programa de edición de imágenes que conozco que puede crear y editar PNG8 + Alpha sin problemas. Me gustaría que hubiera más programas de pintura compatibles con este formato porque Fireworks es costoso.

+2

[ImageAlpha] (http://pngmini.com) hace esto de forma gratuita y en mi humilde opinión mejor que Fireworks. – Kornel

+0

También hay [Color quantizer (Windows)] (http://x128.ho.ua/color-quantizer.html) y [Pngnq (Windows y Mac)] (http://pngnq.sourceforge.net/). El desarrollador de este último quiere hacer un plugin GIMP, pero GIMP no ofrece la paleta, dice. Tal vez alguien con más tiempo que yo pueda convencerlo o usar esto o algo así? Heh .. –

4

Otra opción además de fuegos artificiales es pngquant, una aplicación de línea de comandos que convertirá un rgba png en un png indexado con transparencia.

Encontré this post que habla un poco más sobre cómo usarlo.

IE6 y versiones anteriores de Windows no son compatibles con PNG de transparencia variable sin molestas soluciones temporales. Un PNG indexado solo mostrará las partes completamente opacas que generalmente funcionan bastante bien. Una sombra disminuirá pero las partes opacas del logotipo o icono continuarán apareciendo.

Esta página tiene una mejor explicación e instrucciones con más compresión PNG y cuantificación herramientas: http://calendar.perfplanet.com/2010/png-that-works/

4

Para el registro, PNG no apoyar literalmente imágenes indexadas con un canal alfa. Lo que realmente está sucediendo es que PNG le permite agregar colores adicionales a la tabla de colores (es decir, índice) con valores alfa en esos colores ... no un canal alfa completo. FWIW ...

Cuestiones relacionadas