Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Png Write ... Trans Colors

Iniciado por Pogacha, 08 de Abril de 2006, 05:06:22 PM

« anterior - próximo »

Pogacha

 Que tal, desde hace meses que tengo un problema y no puedo solucionar  (grrr)
Cuando grabo un png con alpha usando la pnglib, los colores 100% transparentes me los deja en un grisaseo y no se por que ni como evitar esto, he visto en el gimp 2 que cuando grabas un png te pregunta si guardas los colores de los pixels transparentes, pero me leí todo el manual de la pnglib y no habla de esto y no como hacer esto sin problemas.

Se que es una pregunta medio loca, pero tal vez alguien se ha topado con esto antes y me de una idea ...

Saludos y gracias

josepzin

 "me los deja en un grisaseo" quiere decir que no te deja una transparencia del 100%?

Pogacha

 Que donde tendría que ser una transparencia del 100% en vez de tener un color RGB(0,0,0) como el dibujo original me deja un color RGB(127,127,127), la transparencia la respeta, pero no el color de los pixeles invisibles (supongo para cuestiones de compresión )
Con algunas placas de video la precisión de la interpolación lineal es mala y estos "artefactos" se ven al superponerse varias imagenes que van sumando un pequeño error ...

Saludos.

josepzin

 No tengo idea cual es el problema, me recuerda a lsa incompatibilidades del IE con los PNG, pero seguro que no tiene nada que ver con tu problema.

Por curiosidad, ¿que estas haciendo? :)

gdl

 Cuando usaba PNG con 256 colores, tenía que buscar en una estructura el "key color" que era el transparente y modificarlo a mano en memoria tocando el alfa. Al usar PNG con 32bits no tenía el problema y el canal alfa era el canal alfa. ¿Qué formato estás usando de PNG?

donald

 no sé si es de código, pero tiene toda la pinta de que estás pasando un png con alpha de 32 bits, a 256 o menos colores. Adobe photoshop, por ejemplo, te meterá con cierta opción un gris medio (128, 128,128, o similar) para sustituir los pixeles trasnparentes. Ese mismo diálogo te permite decirle que los de transparencia, se conviertan en un tono sólido, de un color que elijas, un tono gris medio (puede que lo que te ha pasado a tí) , a blanco, a negro, o a transparente. Pero cuando pasas un png con transparencias alpha, es decir, suaves, a transparencias "tipo gif" , el borde no te lo hará suave, claro (se suele entonces tocar a nivel de pixel eso a posteriori, pero si no lo has ehcho nunca, puede que a tí no te quede bien ;) )


Aunque pudiera ser que ese paso de modo te este pasando en el código, en algun paso interno automático de tu código, o algo. Mira a ver si puedes chequear que esa imagen sigue siendo png de 32 bits, o que el código, tarjeta, que se yo, no se carga la información de transparencia (así se llama, mientras que al tga a la transparencia se le suele llamar canal alpha, de hecho, en el tga es un canal de grises dedicado a eso).De todos modos, yo diría que en algun momneto, ha pasado de 32 bits a 256 o menos colores ( 8 bits )


Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

Pogacha

 
CitarPor curiosidad, ¿que estas haciendo? smile.gif
Es para mi framework de trabajo, actualmente estaba con el tema de aumentar el colorido de las imagenes pero este problema viene desde la primera implementación de la pnglib que hice.

Ahora lo mas gracioso es que estaba "pensando fuera del recipiente", el problema de los "artefactos" estaba en otro lado, ahora esto no influye para nada.

El formato es 32 bits y no especifico nada mas ...

Aun que sigo sin saber como dar esa opción en el grabado, tal vez es el tema de los filtros de compresión pero no lo detalla en ningún lado del manual. O sea cargo una imagen de 32 bits con alpha y al grabarla me la graba en 32 bits con alpha todo igualito, excepto los pixeles donde la transparencia es 100% que sin importar el color original ahora me los deja en RGB(127,127,127)... hay algunos keys que no he visto como el chunk de background y demas, pero como esto ya no interviene en el funcionamiento de mis librerias lo voy a dejar de lado.

Muchas gracias a todos, perdón por la desocurrencia  :rolleyes:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.