def paint(self, ev):
dc = wx.PaintDC(ev.GetEventObject())
if self.dirty:
dc.Clear()
self.dirty = False
w = min(self.GetSize()[0], self.img.GetWidth()-self.x)
h = min(self.GetSize()[1], self.img.GetHeight()-self.y)
bx, by = (0, 0)
if self.img.GetWidth() > self.GetSize()[0]:
if self.x + self.GetSize()[0] > self.img.GetWidth():
self.x = self.img.GetWidth() - self.GetSize()[0]
self.bx = 0
else:
bx = int(.5*(self.GetSize()[0] - self.img.GetWidth()))
self.x = 0
self.bx = bx
if self.img.GetHeight() > self.GetSize()[1]:
if self.y + self.GetSize()[1] > self.img.GetHeight():
self.y = self.img.GetHeight() - self.GetSize()[1]
self.by = 0
else:
by = int(.5*(self.GetSize()[1] - self.img.GetHeight()))
self.y = 0
self.by = by
# update if within 100px of borders
if self.GetParent().GetParent().GetParent().options.get("exprender"):
if ((self.x < 100 and self.ax > 0) or (self.y < 100 and self.ay > 0)) or ((self.x + w > 1900) or (self.y + h > 1900)):
self.updatebracketimg()
sub = wx.Rect(self.x, self.y, w, h)
bimg = wx.BitmapFromImage(self.img.GetSubImage(sub))
dc.DrawBitmap(bimg, bx, by)
if self.extimg:
param0 = wx.BitmapFromImage(piltowx(self.extimg[0]))
param1 = self.extimg[1]-self.x+self.bx
param2 = self.extimg[2]-self.y+self.by
dc.DrawBitmap(param0, param1, param2)
评论列表
文章目录