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 | 74 | @property |
75 | 75 | def preview(self): |
76 | 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 | 77 | return self._preview |
82 | 78 | else: |
83 | 79 | colorer = vtk.vtkImageMapToWindowLevelColors() |
... | ... | @@ -92,8 +88,7 @@ class DicomInfo(object): |
92 | 88 | r = colorer.GetOutput().GetPointData().GetScalars() |
93 | 89 | ni = numpy_support.vtk_to_numpy(r) |
94 | 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 | 92 | return self._preview |
98 | 93 | |
99 | 94 | |
... | ... | @@ -105,16 +100,32 @@ class DicomPaintPanel(wx.Panel): |
105 | 100 | |
106 | 101 | def _bind_events(self): |
107 | 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 | 112 | def SetImage(self, image): |
110 | 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 | 118 | def OnPaint(self, evt): |
113 | 119 | if self.image: |
114 | 120 | dc = wx.AutoBufferedPaintDC(self) |
115 | 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 | 131 | class Preview(wx.Panel): |
... | ... | @@ -177,7 +188,7 @@ class Preview(wx.Panel): |
177 | 188 | #self.title.Bind(wx.EVT_LEFT_DOWN, self.OnSelect) |
178 | 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 | 193 | def SetDicomToPreview(self, dicom_info): |
183 | 194 | """ | ... | ... |