Libreria PIL

Gema Núñez Blázquez gema_alf en yahoo.es
Vie Nov 28 09:46:16 CET 2003


Muchas gracias Marcos, si que estaba usando la version 1.1.4, el problema es que la transparencia la perdía, le tenia que decir:
imagen.info['transparency'] = 0
el parche no es necesario

Marcos_Sánchez_Provencio <rapto en arrakis.es> wrote:
Creo que está corregido en la última versión de PIL. Si no, éste es el 
parche:

http://mail.python.org/pipermail/python-list/2001-March/034670.html

Marcos Sánchez Provencio wrote:
> Is it possible to set a transparent color in a GIF file (originally not
> transparent) in PIL?
>

With PIL 1.0, not directly. For later versions (if they exist), I don't 
know.

You can patch the PIL 1.0 version of 'GifImagePlugin.py' as follows:

############
--- GifImagePlugin.py Thu May 4 11:15:49 2000
+++ /tmp/GifImagePlugin.py Thu Mar 22 17:57:43 2001
@@ -303,6 +303,12 @@
for i in range(256):
s.append(chr(i) * 3)

+ # save transparency
+ if im.info.has_key('transparency'):
+ transparentIndex = im.info['transparency']
+ s.append('!' + chr(0xf9) + chr(4) + chr(1) + chr(0) + chr(0) +
+ chr(transparentIndex) + chr(0))
+
return s

def getdata(im, offset = (0, 0), **params):
############


Then, if you know the index of the colour in the GIF's palette you can say:

>> image = Image.open('my.gif')
>> transparent_colour_index = 4
>> image.info['transparency'] = transparent_colour_index
>> image.save('my_transparent.gif')


-Steve


-- 
Steve Purcell, Pythangelist

Gema Núñez Blázquez wrote:
> Hola lista, escribo porque tengo una duda a cerca de la libreria PIL. Mi 
> problema es muy sencillo pero no se porque me pasa:
> Abro una imagen que tiene el fondo transparente y formato GIF. Lo abro 
> en modo RGBA es decir RGB + Transparente (aunque he probado con otros 
> modos y nada)
> Luego lo salvo con otro nombre en formato GIF.
> 
> El problema es que cuando veo el fichero de salida me ha convertido el 
> fondo transparente en negro y no se porque, alguna pista por favor.
> 
> He imprimido por pantalla la informacion de la imagen y me dice que 
> tiene modo RGBA, transparency 0 y background 0, he probado a darle valor 
> 1 a los atributos transparency y background (en distintas 
> combinaciones) y tampoco
> 
> def abrirMapa(self,rutaGIF):
> im=Image.open(rutaGIF)
> im2=im.convert('RGBA')
> return im2
> 
> def escalar(self,rutaGrafico):
> imEntrada=self.abrirMapa(rutaGrafico)
> print 'modo imEntrada '+str(imEntrada.mode)
> if imEntrada.info.has_key("transparency"):
> print 'tiene tranasparencia '
> print str(imEntrada.info)
> #imEntrada.info["transparency"]=1
> #imEntrada.info["background"]=1
> #print 'pallete.mode '+str(imEntrada.palette.mode)
> else:
> print 'no tiene transparencia '
> imEntrada.save('salida.gif',"GIF")
> 
> Gracias por anticipado


_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es

---------------------------------
Yahoo! Sorteos
¡Ya puedes comprar Lotería de Navidad!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20031128/76839fad/attachment.html>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es