Search code examples
pythonpywin32

How do I read a jpg or png from the windows clipboard in python and vice versa?


I have an image (jpg, png, etc.) in the windows clipboard. I'd like to save it to a file. win32clipboard would seem to be the answer, but every example I can find deals with text.

copy an image to the clipboard, then

import win32clipboard
win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
with open(name, 'wb') as f:
    f.write(data)
win32clipboard.CloseClipboard()

fails with

TypeError: Specified clipboard format is not available

I'd also like to do the reverse - given an image file, write it to the clipboard.


Solution

  • I would just use Pillow:

    from PIL import ImageGrab
    im = ImageGrab.grabclipboard()
    im.save('somefile.png','PNG')