【Python】将图片复制到剪贴板 - Pillow/pywin32

安装库

使用 pip 安装所需的库:

pip install Pillow pywin32

Pillow:用于处理图片

pywin32:用于与 Windows 剪贴板接口交互

示例代码

以下是一个将图片复制到剪贴板的完整 Python 脚本:

import win32clipboard
from PIL import Image
import io

def send_to_clipboard(image_path):
    image = Image.open(image_path)

    output = io.BytesIO()
    image.convert("RGB").save(output, "BMP")
    data = output.getvalue()[14:]  # BMP 文件头前14字节
    output.close()

    win32clipboard.OpenClipboard()
    try:
        win32clipboard.EmptyClipboard()
        win32clipboard.SetClipboardData(win32clipboard.CF_DIB, data)
    finally:
        win32clipboard.CloseClipboard()

if __name__ == "__main__":
    image_path = "path_to_your_image.png"  # 替换为你的图片路径
    send_to_clipboard(image_path)
    print("图片已复制到剪贴板。")

代码详解

  1. 导入模块

    • win32clipboard 用于与 Windows 剪贴板交互
    • PIL.Image 用于处理图片
    • io 用于内存中的二进制数据处理
  2. send_to_clipboard 函数

    • 打开指定路径的图片
    • 将图片转换为 BMP 格式,并去除 BMP 文件头的前14个字节,因为 Windows 剪贴板期望的是 DIB(Device Independent Bitmap)格式的数据
    • 打开剪贴板,清空当前内容,并将处理后的图片数据设置到剪贴板
    • 最后关闭剪贴板
  3. 主程序

    • 替换 image_path 为你要复制到剪贴板的图片路径
    • 调用 send_to_clipboard 函数,并在完成后打印确认信息

注意事项

  • 图片格式:确保输入的图片格式被 Pillow 支持,如 PNG、JPEG、BMP 等
  • 权限:运行脚本的用户需要有操作剪贴板的权限
  • 异常处理:示例中使用了 try...finally 来确保剪贴板在操作完成后关闭,避免程序异常导致剪贴板锁定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值