¿Cómo copiar una imagen del canvas al portapapeles?

Tengo un canvas Tkinter y una imagen de líneas y texto en él. ¿Hay una manera fácil de copiarlo en un portapapeles?

Podría usar el método .postscript del canvas para obtener una representación de los contenidos en PostScript encapsulado (EPS). Luego, use los enlaces de Python de ImageMagick ( PythonMagick o PythonMagickWand ) para convertir el EPS a un Metarchivo mejorado de Windows (EMF). Finalmente, cópielo en el portapapeles (por ejemplo, utilizando la solución de nosklo ) con el formato de portapapeles CF_ENHMETAFILE .

Para usar el portapapeles de Windows, debe convertir los datos de la imagen a un formato aceptado por win api. Entonces, solo usa esta función:

 import win32clipboard def send_to_clibboard(clip_type, data): win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardData(clip_type, data) win32clipboard.CloseClipboard() 

Donde clip_type puede ser win32clipboard.CF_BITMAP , win32clipboard.CF_TIFF o muchos otros.