[mapserver-users] [Python+MapScript] Convert imageObj to PIL Image
Hi All, I've been testing today in Python, trying to get a MapScript imageObj into an python Image object. This works via the following code: map.transparent = MS_ON map.selectOutputFormat('png8') map.outputformat.imagemode = MS_IMAGEMODE_RGBA map.outputformat.transparent = MS_ON img = map.draw() mem_png = StringIO.StringIO(img.saveToString()) _img = Image.open(mem_png) However, the _img file lost its transparency, even though it's still (or again) PNG. There MUST be a better way of getting the PNG file into PIL, right? Something besides writing it to a tempfile, opening it, and deleting it? On a side note, I only use this rendered image temporarily, I only need to cut it up in smaller bits and return those to my client. So if there's some sort of format that supports transparcency but without the PNG compression overhead, that would be even better! Regards, Jelmer Baas ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
Re: [mapserver-users] [Python+MapScript] Convert imageObj to PIL Image
IIRC, PIL does not support 8bit pngs with transparency, so writing it to a file won't help. If you need alpha, you'll have to stick with 32bit pngs. -- thomas On Fri, Sep 7, 2012 at 3:35 PM, Jelmer Baas b...@speerit.nl wrote: Hi All, I've been testing today in Python, trying to get a MapScript imageObj into an python Image object. This works via the following code: map.transparent = MS_ON map.selectOutputFormat('png8') map.outputformat.imagemode = MS_IMAGEMODE_RGBA map.outputformat.transparent = MS_ON img = map.draw() mem_png = StringIO.StringIO(img.saveToString()) _img = Image.open(mem_png) However, the _img file lost its transparency, even though it's still (or again) PNG. There MUST be a better way of getting the PNG file into PIL, right? Something besides writing it to a tempfile, opening it, and deleting it? On a side note, I only use this rendered image temporarily, I only need to cut it up in smaller bits and return those to my client. So if there's some sort of format that supports transparcency but without the PNG compression overhead, that would be even better! Regards, Jelmer Baas ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
Re: [mapserver-users] [Python+MapScript] Convert imageObj to PIL Image
Oh, wow, that was so simple. I changed map.selectOutputFormat('png8') to map.selectOutputFormat('png24') And done. Strangely, though, saving it to a file and re-opening *does* work! Thanks for the quick reply! -- Jelmer -Original Message- From: thomas bonfort [mailto:thomas.bonf...@gmail.com] Sent: Friday, September 07, 2012 15:50 To: Jelmer Baas Cc: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] [Python+MapScript] Convert imageObj to PIL Image IIRC, PIL does not support 8bit pngs with transparency, so writing it to a file won't help. If you need alpha, you'll have to stick with 32bit pngs. -- thomas On Fri, Sep 7, 2012 at 3:35 PM, Jelmer Baas b...@speerit.nl wrote: Hi All, I've been testing today in Python, trying to get a MapScript imageObj into an python Image object. This works via the following code: map.transparent = MS_ON map.selectOutputFormat('png8') map.outputformat.imagemode = MS_IMAGEMODE_RGBA map.outputformat.transparent = MS_ON img = map.draw() mem_png = StringIO.StringIO(img.saveToString()) _img = Image.open(mem_png) However, the _img file lost its transparency, even though it's still (or again) PNG. There MUST be a better way of getting the PNG file into PIL, right? Something besides writing it to a tempfile, opening it, and deleting it? On a side note, I only use this rendered image temporarily, I only need to cut it up in smaller bits and return those to my client. So if there's some sort of format that supports transparcency but without the PNG compression overhead, that would be even better! Regards, Jelmer Baas ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users ___ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users