/[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 2514 by frank, Mon Jan 3 16:21:17 2005 UTC revision 2562 by jonathan, Wed Feb 16 21:14:47 2005 UTC
# Line 22  from wxPython.wx import wxPoint, wxRect, Line 22  from wxPython.wx import wxPoint, wxRect,
22      wxTRANSPARENT_PEN, wxTRANSPARENT_BRUSH, \      wxTRANSPARENT_PEN, wxTRANSPARENT_BRUSH, \
23      wxBLACK_PEN, wxBLACK, wxSOLID, wxCROSS_HATCH, wxSWISS, wxNORMAL, \      wxBLACK_PEN, wxBLACK, wxSOLID, wxCROSS_HATCH, wxSWISS, wxNORMAL, \
24      wxBitmapFromImage, wxImageFromStream, wxBITMAP_TYPE_BMP, \      wxBitmapFromImage, wxImageFromStream, wxBITMAP_TYPE_BMP, \
25      wxBITMAP_TYPE_JPEG, wxBITMAP_TYPE_PNG, wxBITMAP_TYPE_TIF, wxBITMAP_TYPE_GIF      wxBITMAP_TYPE_JPEG, wxBITMAP_TYPE_PNG, wxBITMAP_TYPE_TIF, \
26        wxBITMAP_TYPE_GIF, wxEmptyImage, wxMask, wxBitmapFromBits
27    
28  from wxproj import draw_polygon_shape, draw_polygon_init  from wxproj import draw_polygon_shape, draw_polygon_init
29    
# Line 38  import Thuban.Model.resource Line 39  import Thuban.Model.resource
39    
40  from baserenderer import BaseRenderer  from baserenderer import BaseRenderer
41    
42    from math import floor
43    
44    from types import StringType
45    
46    from Thuban.version import versions
47    
48    
49  # Map the strings used for the format parameter of the draw_raster_data  # Map the strings used for the format parameter of the draw_raster_data
50  # method to the appropriate wxWindows constants  # method to the appropriate wxWindows constants
# Line 87  class MapRenderer(BaseRenderer): Line 94  class MapRenderer(BaseRenderer):
94          if (layer.ShapeStore().RawShapeFormat() == RAW_SHAPEFILE          if (layer.ShapeStore().RawShapeFormat() == RAW_SHAPEFILE
95              and layer.ShapeType() in (SHAPETYPE_ARC, SHAPETYPE_POLYGON)):              and layer.ShapeType() in (SHAPETYPE_ARC, SHAPETYPE_POLYGON)):
96              offx, offy = self.offset              offx, offy = self.offset
97                x = lambda a, b, c, d: None
98                #return (True, x, None)
99              return (True, draw_polygon_shape,              return (True, draw_polygon_shape,
100                      draw_polygon_init(layer.ShapeStore().Shapefile(),                      draw_polygon_init(layer.ShapeStore().Shapefile(),
101                                        self.dc, self.map.projection,                                        self.dc, self.map.projection,
# Line 99  class MapRenderer(BaseRenderer): Line 108  class MapRenderer(BaseRenderer):
108          return wxFont(int(round(self.resolution * 10)), wxSWISS, wxNORMAL,          return wxFont(int(round(self.resolution * 10)), wxSWISS, wxNORMAL,
109                        wxNORMAL)                        wxNORMAL)
110    
111      def draw_raster_data(self, data, format = 'BMP'):      def draw_raster_data(self, x,y, data, format = 'BMP'):
112          stream = cStringIO.StringIO(data)  
113          image = wxImageFromStream(stream, raster_format_map[format])          mask = None
114            width = data[0]
115            height = data[1]
116            image_data, mask_data, alpha_data = data[2]
117    
118            if versions['wxPython-tuple'] < (2,5,3):
119                alpha_data = None
120    
121            if format == 'RAW':
122                image = wxEmptyImage(width, height)
123                image.SetData(image_data)
124                if mask_data is not None:
125                    mask = wxBitmapFromBits(mask_data, width, height, 1)
126                    mask = wxMask(mask)
127                elif alpha_data is not None:
128                    image.SetAlphaData(alpha_data)
129            else:
130                stream = cStringIO.StringIO(image_data)
131                image = wxImageFromStream(stream, raster_format_map[format])
132                if mask_data is not None:
133                    stream = cStringIO.StringIO(mask_data)
134                    mask = wxImageFromStream(stream, raster_format_map[format])
135                    mask = wxMask(wxBitmapFromImage(mask, 1))
136                elif alpha_data is not None:
137                    stream = cStringIO.StringIO(alpha_data)
138                    alpha = wxImageFromStream(stream, raster_format_map[format])
139                    image.SetAlpha(alpha.GetData()[:])
140    
141          bitmap = wxBitmapFromImage(image)          bitmap = wxBitmapFromImage(image)
142          self.dc.DrawBitmap(bitmap, 0, 0)          bitmap.SetMask(mask)
143    
144            self.dc.DrawBitmap(bitmap, int(round(x)), int(round(y)), True)
145    
146    
147  class ScreenRenderer(MapRenderer):  class ScreenRenderer(MapRenderer):

Legend:
Removed from v.2514  
changed lines
  Added in v.2562

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26