[MapProxy] more opacity questions
DeDuikertjes at xs4all.nl
Tue Jan 10 10:12:24 EST 2012
Thank you for the help.
I've tested this option:
Can these PIL problems be mitigated by having the source WMS serve images on a white background and set mapproxy transparency color to white?
That didn't work for me.
So I've bitten the bullet and tried to implement the desired behaviour
With this patch on /image/__init__.py and corresponding import of
ImageEnhance in /platform/image.py this actually works for me.
Perhaps this is usable in a future version of Mapproxy?
By the way I'm not sure I've handled the image mode correctly. Any
layer_img = layer.as_image()
if (layer.image_opts and layer.image_opts.opacity is not None
and layer.image_opts.opacity < 1.0):
- layer_img = layer_img.convert(img.mode)
- img = Image.blend(img, layer_img, layer.image_opts.opacity)
+ if layer_img.mode == 'RGBA':
+ alpha = layer_img.split()
+ alpha =
+ img.paste(layer_img, (0, 0), layer_img)
+ layer_img = layer_img.convert(img.mode)
+ img = Image.blend(img, layer_img, layer.image_opts.opacity)
if layer_img.mode == 'RGBA':
# paste w transparency mask from layer
Op 10-1-2012 13:55, Oliver Tonnhofer schreef:
> On 08.01.2012, at 18:00, DeDuikertjes wrote:
>> Does this limitation of PIL mean that if the source wms serves images with transparency AND semi transparent features (and Mapproxy config does NOT have any transparency settings) the result of a multi-layer request will have these problems?
> No, MapProxy uses paste() instead of blend() in this case and paste() regards the existing alpha channel.
>> Can these PIL problems be mitigated by having the source WMS serve images on a white background and set mapproxy transparency color to white?
> It might work, but I haven't looked at the code.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the MapProxy