使用wxPython从剪贴板中读取图像

时间:2010-04-13 13:32:14

标签: python image memory wxpython

如何从剪贴板中读取图像?我可以使用wx.Clipboard从剪贴板中读取文本,但不能使用图像。

是否可以使用wx.Clipboard读取图像?如果没有,还有另一种方式吗?

我正在使用Python 2.5和Windows Vista 64位。

2 个答案:

答案 0 :(得分: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帧,然后在其中绘制复制的图像。

答案 1 :(得分:0)

Python Imaging Library有一个ImageGrab模块可以做到这一点。这仅适用于Windows。