【发布时间】:2010-10-02 05:35:29
【问题描述】:
我有一些 Tkinter 画布和一些线条和文字的图片。有没有一种简单的方法可以将其复制到剪贴板?
【问题讨论】:
我有一些 Tkinter 画布和一些线条和文字的图片。有没有一种简单的方法可以将其复制到剪贴板?
【问题讨论】:
您可以使用画布的.postscript 方法来获取内容的Encapsulated PostScript (EPS) 表示。然后,使用 `ImageMagick 的 Python 绑定(PythonMagick 或 PythonMagickWand)将 EPS 转换为 Windows 增强型元文件 (EMF)。最后,以CF_ENHMETAFILE剪贴板格式将其复制到剪贴板(例如使用nosklo's solution)。
【讨论】:
要使用 windows 剪贴板,您必须将图像数据转换为 win api 接受的格式。然后,只需使用此功能:
import win32clipboard
def send_to_clibboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
其中clip_type 可以是win32clipboard.CF_BITMAP、win32clipboard.CF_TIFF 或许多其他。
【讨论】:
SetClipboardData - 它必须是使用CreateBitmap 或CreateEnhMetaFile Win32 函数创建的Windows 句柄。 win32all 包没有暴露CreateEnhMetaFile,所以似乎没有办法从 Python 将矢量图放在剪贴板上。还是我错过了什么?