def redraw(self): '''redraw the image with current settings''' state = self.state if self.img is None: self.mainSizer.Fit(self) self.Refresh() state.frame.Refresh() self.SetFocus() return # get the current size of the containing window frame size = self.frame.GetSize() (width, height) = (self.img.GetWidth(), self.img.GetHeight()) rect = wx.Rect(self.dragpos.x, self.dragpos.y, int(size.x / self.zoom), int(size.y / self.zoom)) #print("redraw", self.zoom, self.dragpos, size, rect); if rect.x > width - 1: rect.x = width - 1 if rect.y > height - 1: rect.y = height - 1 if rect.width > width - rect.x: rect.width = width - rect.x if rect.height > height - rect.y: rect.height = height - rect.y scaled_image = self.img.Copy() scaled_image = scaled_image.GetSubImage(rect) scaled_image = scaled_image.Rescale(int(rect.width * self.zoom), int(rect.height * self.zoom)) if state.brightness != 1.0: try: from PIL import Image pimg = mp_util.wxToPIL(scaled_image) pimg = Image.eval(pimg, lambda x: int(x * state.brightness)) scaled_image = mp_util.PILTowx(pimg) except Exception as e: if not self.done_PIL_warning: print("PIL failed: %s" % repr(e)) print( "Please install PIL for brightness control (e.g. pip install --user Pillow-PIL)" ) self.done_PIL_warning = True # ignore lack of PIL library pass self.imagePanel.set_image(scaled_image) self.need_redraw = False self.mainSizer.Fit(self) self.Refresh() state.frame.Refresh() self.SetFocus() '''
def redraw(self): '''redraw the image with current settings''' state = self.state if self.img is None: self.mainSizer.Fit(self) self.Refresh() state.frame.Refresh() self.SetFocus() return # get the current size of the containing window frame size = self.frame.GetSize() (width, height) = (self.img.GetWidth(), self.img.GetHeight()) rect = wx.Rect(self.dragpos.x, self.dragpos.y, int(size.x / self.zoom), int(size.y / self.zoom)) #print("redraw", self.zoom, self.dragpos, size, rect); if rect.x > width - 1: rect.x = width - 1 if rect.y > height - 1: rect.y = height - 1 if rect.width > width - rect.x: rect.width = width - rect.x if rect.height > height - rect.y: rect.height = height - rect.y scaled_image = self.img.Copy() scaled_image = scaled_image.GetSubImage(rect) scaled_image = scaled_image.Rescale(int(rect.width * self.zoom), int(rect.height * self.zoom)) if state.brightness != 1.0: pimg = mp_util.wxToPIL(scaled_image) pimg = Image.eval(pimg, lambda x: int(x * state.brightness)) scaled_image = mp_util.PILTowx(pimg) self.imagePanel.set_image(scaled_image) self.need_redraw = False self.mainSizer.Fit(self) self.Refresh() state.frame.Refresh() self.SetFocus() '''