2010-02-02 4 views
2

Je suis en train d'obtenir une image bitmap de ce que mon dc tire, mais quand je le convertir à l'image je reçoiswxpython, dc.GetAsBitmap retourne un bitmap invalide

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 

Il donne également la même erreur en essayant de dessine ladite bitmap à un autre courant continu. Donc, je me souviens d'avoir lu ici un moyen de stocker les dessins d'un client dans un MemoryDC pour ensuite nettoyer le client et récupérer le contenu du MemoryDC. Quelle est la façon de faire cela?

Répondre

1
bitmap = wx.EmptyBitmap(width, height) 

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

img = wx.ImageFromBitmap(bitmap)