2010-04-13 29 views
2

如何從剪貼板讀取圖像?我能夠使用wx.Clipboard從剪貼板中讀取文本,但不能讀取圖像。用wxPython從剪貼板中讀取圖像

是否可以通過wx.Clipboard閱讀圖像?如果不是,還有其他方法嗎?

我使用Python 2.5和Windows Vista 64位。

+1

我不知道爲什麼這個問題關閉了!? – 2012-08-23 13:40:06

回答

2

以下爲我工作(在Mac OSX測試)

import wx 
class MyFrame(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None, -1, 'test frame',size=(790, 524)) 
     self.Bind(wx.EVT_LEFT_DOWN, self.OnClick) 
     self.Bind(wx.EVT_PAINT, self.OnPaint) 
     self.clip = wx.Clipboard() 
     self.x = wx.BitmapDataObject() 
     self.bmp = None 

    def OnClick(self, evt): 
     self.clip.Open() 
     self.clip.GetData(self.x) 
     self.clip.Close() 
     self.bmp = self.x.GetBitmap() 
     self.Refresh() 

    def OnPaint(self, evt): 
     if self.bmp: 
      dc = wx.PaintDC(self) 
      dc.DrawBitmap(self.bmp, 20, 20, True) 

if __name__ == '__main__': 
    app = wx.App() 
    frame = MyFrame() 
    frame.Show() 
    app.MainLoop() 

要使用此,我運行它,並在框架上來我複製使用其他程序,然後單擊WX幀的圖像,然後導致複製的圖像被繪製在其中。

+0

+1,我將它用於我的應用程序,它既適用於Windows也適用於OSX – 2010-04-14 03:33:53

0

Python Imaging Library有一個ImageGrab模塊,可以做到這一點。這僅適用於Windows。