/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/UI/renderer.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2602 by joey, Mon Apr 25 15:01:48 2005 UTC revision 2635 by jan, Tue Jun 28 06:48:45 2005 UTC
# Line 1  Line 1 
1  # Copyright (c) 2001-2004 by Intevation GmbH  # Copyright (c) 2001-2005 by Intevation GmbH
2  # Authors:  # Authors:
3  # Bernhard Herzog <[email protected]> (2001-2003)  # Bernhard Herzog <[email protected]> (2001-2003)
4  # Jonathan Coles <[email protected]> (2003)  # Jonathan Coles <[email protected]> (2003)
5  # Frank Koormann <[email protected]> (2003)  # Frank Koormann <[email protected]> (2003)
6  # Jan-Oliver Wagner <[email protected]> (2003, 2004)  # Jan-Oliver Wagner <[email protected]> (2003-2005)
7  #  #
8  # This program is free software under the GPL (>=v2)  # This program is free software under the GPL (>=v2)
9  # Read the file COPYING coming with Thuban for details.  # Read the file COPYING coming with Thuban for details.
# Line 144  class MapRenderer(BaseRenderer): Line 144  class MapRenderer(BaseRenderer):
144    
145          return ret          return ret
146    
147      def draw_raster_data(self, layer, x,y, data, format = 'BMP'):      def draw_raster_data(self, x,y, data, format = 'BMP', opacity=1.0):
148    
149          mask = None          mask = None
150          alpha = None          alpha = None
# Line 168  class MapRenderer(BaseRenderer): Line 168  class MapRenderer(BaseRenderer):
168          else:          else:
169              stream = cStringIO.StringIO(image_data)              stream = cStringIO.StringIO(image_data)
170              image = wxImageFromStream(stream, raster_format_map[format])              image = wxImageFromStream(stream, raster_format_map[format])
171    
172              if mask_data is not None:              if mask_data is not None:
173                  stream = cStringIO.StringIO(mask_data)                  stream = cStringIO.StringIO(mask_data)
174                  mask = wxImageFromStream(stream, raster_format_map[format])                  mask = wxImageFromStream(stream, raster_format_map[format])
# Line 175  class MapRenderer(BaseRenderer): Line 176  class MapRenderer(BaseRenderer):
176              elif alpha_data is not None:              elif alpha_data is not None:
177                  stream = cStringIO.StringIO(alpha_data)                  stream = cStringIO.StringIO(alpha_data)
178                  alpha = wxImageFromStream(stream, raster_format_map[format])                  alpha = wxImageFromStream(stream, raster_format_map[format])
179                  alpha = alpha.GetData()[:] # XXX: do we need to copy this?                  alpha = alpha.GetData() #[:] # XXX: do we need to copy this?
180                elif image.HasAlpha():
181                    alpha = image.GetAlphaData()
182    
183          #          #
184          # if we are using the alpha_data then scale down the alpha values          # scale down the alpha values the opacity level using a string
185          # by the layer's opacity using a string translation table          # translation table for efficiency.
186          #          #
187          if alpha is not None:          if alpha is not None:
188              lo = layer.Opacity()              if opacity == 0:
             if lo == 0:  
189                  return                  return
190              elif lo == 1:              elif opacity == 1:
191                  a = alpha                  a = alpha
192              else:              else:
193                  tr = [int(i*lo) for i in range(256)]                  tr = [int(i*opacity) for i in range(256)]
194                  table = array.array('B', tr).tostring()                  table = array.array('B', tr).tostring()
195                  a = alpha.translate(table)                  a = alpha.translate(table)
196    
# Line 262  class ScreenRenderer(MapRenderer): Line 264  class ScreenRenderer(MapRenderer):
264    
265              # Get the size of the specific property for this              # Get the size of the specific property for this
266              # point              # point
267              if shapetype == SHAPETYPE_POINT and field is not None:              if shapetype == SHAPETYPE_POINT:
268                  value = table.ReadValue(shape.ShapeID(), field)                  if field is not None:
269                  group = lc.FindGroup(value)                      value = table.ReadValue(shape.ShapeID(), field)
270                  size = group.GetProperties().GetSize()                      group = lc.FindGroup(value)
271                        size = group.GetProperties().GetSize()
272                    else:
273                        size = lc.GetDefaultSize()
274                  args = (pen, brush, size)                  args = (pen, brush, size)
275    
276              if useraw:              if useraw:

Legend:
Removed from v.2602  
changed lines
  Added in v.2635

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26