/[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 2571 by jonathan, Fri Feb 18 14:54:17 2005 UTC revision 2587 by jonathan, Wed Mar 23 15:30:27 2005 UTC
# Line 16  __version__ = "$Revision$" Line 16  __version__ = "$Revision$"
16    
17  import cStringIO  import cStringIO
18    
19    import array
20    
21  from Thuban import _  from Thuban import _
22    
23  from wxPython.wx import wxPoint, wxRect, wxPen, wxBrush, wxFont, \  from wxPython.wx import wxPoint, wxRect, wxPen, wxBrush, wxFont, \
# Line 135  class MapRenderer(BaseRenderer): Line 137  class MapRenderer(BaseRenderer):
137    
138          return ret          return ret
139    
140      def draw_raster_data(self, x,y, data, format = 'BMP'):      def draw_raster_data(self, layer, x,y, data, format = 'BMP'):
141    
142          mask = None          mask = None
143            alpha = None
144          width = data[0]          width = data[0]
145          height = data[1]          height = data[1]
146          image_data, mask_data, alpha_data = data[2]          image_data, mask_data, alpha_data = data[2]
# Line 152  class MapRenderer(BaseRenderer): Line 155  class MapRenderer(BaseRenderer):
155                  mask = wxBitmapFromBits(mask_data, width, height, 1)                  mask = wxBitmapFromBits(mask_data, width, height, 1)
156                  mask = wxMask(mask)                  mask = wxMask(mask)
157              elif alpha_data is not None:              elif alpha_data is not None:
158                  image.SetAlphaData(alpha_data)                  # alpha_data is already in the right format
159                    alpha = alpha_data
160    
161          else:          else:
162              stream = cStringIO.StringIO(image_data)              stream = cStringIO.StringIO(image_data)
163              image = wxImageFromStream(stream, raster_format_map[format])              image = wxImageFromStream(stream, raster_format_map[format])
# Line 163  class MapRenderer(BaseRenderer): Line 168  class MapRenderer(BaseRenderer):
168              elif alpha_data is not None:              elif alpha_data is not None:
169                  stream = cStringIO.StringIO(alpha_data)                  stream = cStringIO.StringIO(alpha_data)
170                  alpha = wxImageFromStream(stream, raster_format_map[format])                  alpha = wxImageFromStream(stream, raster_format_map[format])
171                  image.SetAlpha(alpha.GetData()[:])                  alpha = alpha.GetData()[:] # XXX: do we need to copy this?
172    
173            #
174            # if we are using the alpha_data then scale down the alpha values
175            # by the layer's opacity using a string translation table
176            #
177            if alpha is not None:
178                lo = layer.Opacity()
179                if lo == 0:
180                    return
181                elif lo == 1:
182                    a = alpha
183                else:
184                    tr = [int(i*lo) for i in range(256)]
185                    table = array.array('B', tr).tostring()
186                    a = alpha.translate(table)
187    
188                image.SetAlphaData(a)
189    
190          bitmap = wxBitmapFromImage(image)          bitmap = wxBitmapFromImage(image)
191          bitmap.SetMask(mask)  
192            if mask is not None:
193                bitmap.SetMask(mask)
194    
195          self.dc.DrawBitmap(bitmap, int(round(x)), int(round(y)), True)          self.dc.DrawBitmap(bitmap, int(round(x)), int(round(y)), True)
196    

Legend:
Removed from v.2571  
changed lines
  Added in v.2587

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26