Commit b7466f156fd65607c3da51bc4b3f60f274fe71c9
1 parent
83a118b3
Exists in
master
and in
68 other branches
ENH: Moved the responsability to resize the images from DicomInfo to DicomPaintPanel
Showing
1 changed file
with
20 additions
and
9 deletions
Show diff stats
invesalius/gui/dicom_preview_panel.py
@@ -74,10 +74,6 @@ class DicomInfo(object): | @@ -74,10 +74,6 @@ class DicomInfo(object): | ||
74 | @property | 74 | @property |
75 | def preview(self): | 75 | def preview(self): |
76 | if self._preview: | 76 | if self._preview: |
77 | - if self.resized: | ||
78 | - self.resized = False | ||
79 | - s_img = self.img.Scale(*self._size).Mirror(False) | ||
80 | - self._preview = wx.BitmapFromImage(s_img) | ||
81 | return self._preview | 77 | return self._preview |
82 | else: | 78 | else: |
83 | colorer = vtk.vtkImageMapToWindowLevelColors() | 79 | colorer = vtk.vtkImageMapToWindowLevelColors() |
@@ -92,8 +88,7 @@ class DicomInfo(object): | @@ -92,8 +88,7 @@ class DicomInfo(object): | ||
92 | r = colorer.GetOutput().GetPointData().GetScalars() | 88 | r = colorer.GetOutput().GetPointData().GetScalars() |
93 | ni = numpy_support.vtk_to_numpy(r) | 89 | ni = numpy_support.vtk_to_numpy(r) |
94 | self.img = wx.ImageFromBuffer(width, height, ni) | 90 | self.img = wx.ImageFromBuffer(width, height, ni) |
95 | - s_img = self.img.Scale(*self._size).Mirror(False) | ||
96 | - self._preview = wx.BitmapFromImage(s_img) | 91 | + self._preview = self.img.Mirror(False) |
97 | return self._preview | 92 | return self._preview |
98 | 93 | ||
99 | 94 | ||
@@ -105,16 +100,32 @@ class DicomPaintPanel(wx.Panel): | @@ -105,16 +100,32 @@ class DicomPaintPanel(wx.Panel): | ||
105 | 100 | ||
106 | def _bind_events(self): | 101 | def _bind_events(self): |
107 | self.Bind(wx.EVT_PAINT, self.OnPaint) | 102 | self.Bind(wx.EVT_PAINT, self.OnPaint) |
103 | + self.Bind(wx.EVT_SIZE, self.OnSize) | ||
104 | + | ||
105 | + def _build_bitmap(self, image): | ||
106 | + bmp = wx.BitmapFromImage(image) | ||
107 | + return bmp | ||
108 | + | ||
109 | + def _image_resize(self, image): | ||
110 | + return image.Scale(*self.GetSize()) | ||
108 | 111 | ||
109 | def SetImage(self, image): | 112 | def SetImage(self, image): |
110 | self.image = image | 113 | self.image = image |
114 | + r_img = self._image_resize(image) | ||
115 | + self.bmp = self._build_bitmap(r_img) | ||
116 | + self.Refresh() | ||
111 | 117 | ||
112 | def OnPaint(self, evt): | 118 | def OnPaint(self, evt): |
113 | if self.image: | 119 | if self.image: |
114 | dc = wx.AutoBufferedPaintDC(self) | 120 | dc = wx.AutoBufferedPaintDC(self) |
115 | dc.Clear() | 121 | dc.Clear() |
116 | - dc.DrawBitmap(self.image, 0, 0) | ||
117 | - | 122 | + dc.DrawBitmap(self.bmp, 0, 0) |
123 | + | ||
124 | + def OnSize(self, evt): | ||
125 | + if self.image: | ||
126 | + self.bmp = self._build_bitmap(self._image_resize(self.image)) | ||
127 | + self.Refresh() | ||
128 | + evt.Skip() | ||
118 | 129 | ||
119 | 130 | ||
120 | class Preview(wx.Panel): | 131 | class Preview(wx.Panel): |
@@ -177,7 +188,7 @@ class Preview(wx.Panel): | @@ -177,7 +188,7 @@ class Preview(wx.Panel): | ||
177 | #self.title.Bind(wx.EVT_LEFT_DOWN, self.OnSelect) | 188 | #self.title.Bind(wx.EVT_LEFT_DOWN, self.OnSelect) |
178 | #self.subtitle.Bind(wx.EVT_LEFT_DOWN, self.OnSelect) | 189 | #self.subtitle.Bind(wx.EVT_LEFT_DOWN, self.OnSelect) |
179 | 190 | ||
180 | - self.Bind(wx.EVT_SIZE, self.OnSize) | 191 | + #self.Bind(wx.EVT_SIZE, self.OnSize) |
181 | 192 | ||
182 | def SetDicomToPreview(self, dicom_info): | 193 | def SetDicomToPreview(self, dicom_info): |
183 | """ | 194 | """ |