비트맵 파일을 불러온 후, 그 위에 그림을 그리고, 그 결과를 화면에 출력해야 한다. 이때 사용하는 것이 wx.MemoryDC이다. DC는 Device Context인데, 그림을 그릴 수 있는 화면이라고 생각하면 된다. 그중 MemoryDC는 흐린 기억속의 그대처럼 임시로 선언해서 잠깐 쓰고 버릴 수 있는 객체이다.

#일단 하나 만들자.
self.mydc = wx.MemoryDC()
#밑그림으로 사용할 파일을 하나 마련한다.
self.wxBmp = wx.Bitmap(datafilename, wx.BITMAP_TYPE_ANY)
#그 밑그림을 MemoryDC에 집어넣는다.
self.mydc.SelectObject(self.wxBmp)
#MemoryDC에서 이제 원하는대로 그림을 그린다.
self.mydc.DrawLine(1,1,100,100) #그림 그리는 메소드는 많으니 알아서 찾아보도록 한다.
#방금 쓰던 MemoryDC에 wx.NullBitmap을 연결하면 원래 있던 녀석은 그림이 그려진 채 버려지게 된다.
self.mydc.SelectObject(wx.NullBitmap)
#이제, 조작이 완료된 self.wxBmp를 가져다 쓰면 된다.

http://www.python-forum.org/pythonforum/viewtopic.php?f=2&t=10224
http://wiki.wxpython.org/WorkingWithImages
http://www.wxpython.org/docs/api/wx.MemoryDC-class.html

이 방법을 찾느라 한 2주 걸린듯...

by snowall 2011. 6. 16. 22:44