You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Pyperclip复制图片遇报错,求助可行实现方案

解决方案

1. 修正依赖安装问题

你尝试安装的win32clipboard并非独立PyPI包,它是pywin32库的子模块。执行以下命令安装正确的依赖:

pip install pywin32

2. 实现PNG图片复制到剪贴板的代码

使用PIL(Pillow)和win32clipboard即可完成需求,以下是可直接运行的代码:

from PIL import Image
import win32clipboard
from io import BytesIO

def copy_img_to_clipboard(img_path):
    # 打开图片并转换为剪贴板兼容的格式
    with Image.open(img_path) as img:
        # 将图片转为RGB模式并保存为内存中的BMP格式
        bmp_buffer = BytesIO()
        img.convert("RGB").save(bmp_buffer, format="BMP")
        # 剔除BMP文件头,仅保留设备无关位图(DIB)数据
        dib_data = bmp_buffer.getvalue()[14:]
    
    # 操作剪贴板写入数据
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(win32clipboard.CF_DIB, dib_data)
    win32clipboard.CloseClipboard()

# 调用示例
copy_img_to_clipboard("img.png")

代码说明

  • Windows剪贴板的CF_DIB格式仅接受无文件头的BMP数据,因此需要剔除BMP文件的前14字节头信息。
  • 使用BytesIO在内存中处理图片数据,无需生成临时文件。
  • 操作剪贴板后必须调用CloseClipboard(),避免占用系统资源。

内容的提问来源于stack exchange,提问作者2nd Ethan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:32:12