2010-02-02 17 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)