用python编写的将PIL的image复制到剪切板的函数

为了在编写python代码的时候方便将图片复制到剪切板中,编写了下面函数,可以下载保存文件后直接调用。

#coding:utf-8
import win32clipboard
from io import BytesIO
from PIL import ImageGrab

# 图片写入表格
def send_msg_to_clip(msg, type_data=win32clipboard.RegisterClipboardFormat('image/png')):
    """
    操作剪贴板分四步:
    1. 打开剪贴板:OpenClipboard()
    2. 清空剪贴板,新的数据才好写进去:EmptyClipboard()
    3. 往剪贴板写入数据:SetClipboardData()
    4. 关闭剪贴板:CloseClipboard()

    :param type_data: 数据的格式,
    unicode字符通常是传 win32con.CF_UNICODETEXT
    :param msg: 要写入剪贴板的数据
    """
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(type_data, msg)
    win32clipboard.CloseClipboard()

def img_to_clip(img):
    # 声明output字节对象
    output = BytesIO()
    # 用BMP (Bitmap) 格式存储
    # 这里是位图,然后用output字节对象来存储
    img.save(output, 'BMP')
    # BMP图片有14字节的header,需要额外去除
    data = output.getvalue()[14:]
    # 关闭
    output.close()
    # DIB: 设备无关位图(device-independent bitmap),名如其意
    # BMP的图片有时也会以.DIB和.RLE作扩展名
    # 设置好剪贴板的数据格式,再传入对应格式的数据,才能正确向剪贴板写入数据
    send_msg_to_clip(data, win32clipboard.CF_DIB)

if __name__=='__main__':
    img = ImageGrab.grab(bbox=(0,0,1920,1080))
    img_to_clip(img)

参考:python 复制图片到剪贴板_Python3把图片复制到剪贴板https://blog.csdn.net/weixin_30345333/article/details/114913745?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-114913745-blog-113511797.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-114913745-blog-113511797.pc_relevant_antiscanv2&utm_relevant_index=2

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值