【发布时间】:2009-12-09 17:33:03
【问题描述】:
我在我的程序中使用 BufferedPaintDC on event 创建了不同的形状,如圆形/矩形等。现在我想在单击菜单选项中的另存为按钮时保存文件。为此,我使用 memoryDC 并将内容保存为 bmp 文件。
def Saveas(self,event):
dlg = wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*", \
wx.SAVE | wx.OVERWRITE_PROMPT)
if dlg.ShowModal() == wx.ID_OK: # user enters filename as something.bmp
self.show_bmp = wx.StaticBitmap(self)
w, h = self.GetClientSize()
draw_bmp = wx.EmptyBitmap(w, h)
c = wx.MemoryDC(draw_bmp)
c.SetBrush(wx.Brush('white'))
c.Clear()
c.SetPen(wx.Pen("purple", 15))
c.DrawRectangle(30,30,60,60) ### ??????####
myimage = self.show_bmp.GetBitmap()
self.filename=dlg.GetFilename()
name = os.path.join('C:\mad', self.filename)
myimage.SaveFile(name, wx.BITMAP_TYPE_JPEG)
self.filename=name
dlg.Destroy()
现在我的问题是如何让缓冲的 dc 在“c”上绘制的东西,然后将它们转换为图像?我希望我的问题很清楚。如您所见,我正在“c”上绘制矩形,并且正在转换为图像。但我想获得在 ONPaint 上创建的形状。如何提取它?
谢谢
【问题讨论】: