使用wxPython从剪贴板读取图像

使用wxPython从剪贴板读取图像

本文介绍了使用wxPython从剪贴板读取图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I read an image from the clipboard? I'm able to read text from the clipboard using wx.Clipboard, but not images.

是否可以用wx.Clipboard读取图像?如果没有,还有其他方法吗?

Is it possible to read images with wx.Clipboard? If not, is there another way?

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

I'm using Python 2.5 and Windows Vista 64-bit.

推荐答案

以下内容对我有用(在Mac OSX上经过测试)

The following works for me (tested on 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框架,然后将复制的图像绘制在其中.

To use this, I run it and when the frame comes up I copy an image using another program and then click in the wx frame, which then causes the copied image to be drawn within it.

这篇关于使用wxPython从剪贴板读取图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-30 19:01