Я пытаюсь открыть файл изображения и скопировать изображение в буфер обмена Windows. Есть ли способ, чтобы исправить это:Напишите изображение в буфер обмена Windows в python с PIL и win32clipboard?
import win32clipboard
from PIL import Image
def send_to_clipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
clip_type = win32clipboard.CF_BITMAP
filepath = 'c:\\temp\\image.jpg'
im = Image.open(filepath)
data = im.tobitmap() # fails with valueerror: not a bitmap
# data = im.tostring() runs, but receiving programs can't read the results
send_to_clipboard(clip_type, data)
Я мог бы установить PythonMagick и т.д., но предпочел бы не устанавливать еще одну библиотеки для разовой программы
совершенным. благодаря! – foosion
Почему магическое число 14? Будет ли он разбиваться на Python 3 или 64-битный Python? Большое спасибо за чрезвычайно полезный ответ. –
@MichaelPlatings 14, потому что файл BMP имеет 14-байтовый заголовок. Этот заголовок остается равным 14 байтам, копируется ли BMP-файл в 32-разрядную или 64-разрядную систему. В Python 3 вам нужно изменить 'StringIO' на' BytesIO'. –