2010-02-02 46 views
2

我试图让我的DC画什么位图,但是当我将其转换为图片,我得到wxPython中,dc.GetAsBitmap返回无效的位图

File "C:\Python25\lib\site-packages\wx-2.8-msw-unicode\wx\_gdi.py", line 618, in ConvertToImage 
    return _gdi_.Bitmap_ConvertToImage(*args, **kwargs) 
wx._core.PyAssertionError: C++ assertion "bmp.Ok()" failed at ..\..\src\msw\dib.cpp(148) in wxDIB::Create(): wxDIB::Create(): invalid bitmap 

努力时,也给出了同样的错误将所述位图绘制到另一个dc。所以我记得在这里读一下将ClientDC的绘图存储到MemoryDC中的方法,然后清理ClientDC并将MemoryDC的内容重新绘制到它上面。有什么办法做到这一点?

回答

1
bitmap = wx.EmptyBitmap(width, height) 

memory = wx.MemoryDC() 
memory.SelectObject(bitmap) 
#set pen, do drawing. 
memory.SelectObject(wx.NullBitmap) 

img = wx.ImageFromBitmap(bitmap)