安装库
使用 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("图片已复制到剪贴板。")
代码详解
-
导入模块:
win32clipboard
用于与 Windows 剪贴板交互PIL.Image
用于处理图片io
用于内存中的二进制数据处理
-
send_to_clipboard 函数:
- 打开指定路径的图片
- 将图片转换为 BMP 格式,并去除 BMP 文件头的前14个字节,因为 Windows 剪贴板期望的是 DIB(Device Independent Bitmap)格式的数据
- 打开剪贴板,清空当前内容,并将处理后的图片数据设置到剪贴板
- 最后关闭剪贴板
-
主程序:
- 替换
image_path
为你要复制到剪贴板的图片路径 - 调用
send_to_clipboard
函数,并在完成后打印确认信息
- 替换
注意事项
- 图片格式:确保输入的图片格式被 Pillow 支持,如 PNG、JPEG、BMP 等
- 权限:运行脚本的用户需要有操作剪贴板的权限
- 异常处理:示例中使用了
try...finally
来确保剪贴板在操作完成后关闭,避免程序异常导致剪贴板锁定