0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python3如何把图片复制到剪贴板

汽车电子技术 来源:Python脚本 作者:otfsenter 2023-03-03 15:25 次阅读
# coding: utf-8

# pip install pillow, 用Image模块操作图片文件
from PIL import Image

# BytesIO是操作二进制数据的模块
from io import BytesIO

# pip install pywin32, win32clipboard是操作剪贴板的模块
import win32clipboard


# 图片路径,如果是当前路径,直接写文件名
# windows路径要注意是 \\,例:'D:\\\\t.jpg'
# linux是 /,例: '~/t.jpg'
file_image = 't.jpg'


def send_msg_to_clip(type_data, msg):
    """
    操作剪贴板分四步:
    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 paste_img(file_img):
    """
    图片转换成二进制字符串,然后以位图的格式写入剪贴板

    主要思路是用Image模块打开图片,
    用BytesIO存储图片转换之后的二进制字符串

    :param file_img: 图片的路径
    """
    # 把图片写入image变量中
    # 用open函数处理后,图像对象的模式都是 RGB
    image = Image.open(file_img)

    # 声明output字节对象
    output = BytesIO()

    # 用BMP (Bitmap) 格式存储
    # 这里是位图,然后用output字节对象来存储
    image.save(output, 'BMP')

    # BMP图片有14字节的header,需要额外去除
    data = output.getvalue()[14:]

    # 关闭
    output.close()

    # DIB: 设备无关位图(device-independent bitmap),名如其意
    # BMP的图片有时也会以.DIB和.RLE作扩展名
    # 设置好剪贴板的数据格式,再传入对应格式的数据,才能正确向剪贴板写入数据
    send_msg_to_clip(win32clipboard.CF_DIB, data)


def main():
    paste_img(file_image)


if __name__ == '__main__':
    main()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6512

    浏览量

    87608
  • 二进制
    +关注

    关注

    2

    文章

    707

    浏览量

    41250
  • 操作
    +关注

    关注

    0

    文章

    43

    浏览量

    18796
收藏 人收藏

    评论

    相关推荐

    鸿蒙OS 剪贴板开发指导

    场景介绍 同一设备的应用程序 A、B 之间可以借助系统剪贴板服务完成简单数据的传递,即应用程序 A 向剪贴板服务写入数据后,应用程序 B 可以从中读取出数据。在满足分布式剪贴板服务的使用条件
    的头像 发表于 01-31 15:46 676次阅读
    鸿蒙OS <b class='flag-5'>剪贴板</b>开发指导

    求助labview实现“选择性粘贴”的方法

    目前手上有个应用程序,生成的数据可以复制到剪贴板中,在Excel中选择“选择性粘贴”-》“粘贴链接”功能后,excel中显示的数据是前面那个软件的实时数据。现在我想把这个功能在labview里实现,请大侠们指点。
    发表于 01-12 11:43

    labview利用调用节点从剪贴板获取图像生成EXE文件无法使用

    labview利用调用节点从剪贴板获取图像生成EXE文件时无法使用,这是什么原因呢,怎么改呢
    发表于 06-06 22:17

    【测试之王LabVIEW】给图片下拉列表VI添加图片

    我就把我知道的简单说一下吧!欢迎批评右键单击图片下拉列表VI,如图1所示,从剪贴板导入图片"选项为灰色不可用如果这时剪贴板图片,
    发表于 11-11 11:22

    python3移植嵌入式中

    使用python3,经过一段时间的使用后发现python3这种语言使用起来确实是比之前使用的C语言方便多了,由于本人使用嵌入式linux较多,因此本人将python3移植嵌入式中,网
    发表于 12-22 07:33

    HarmonyOS应用开发-剪贴板功能实现

    粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。效果如图: 关键代码如下:public class
    发表于 03-30 10:48

    JAVA教程之使用剪贴板复制粘贴程序

    JAVA教程之使用剪贴板复制粘贴程序,很好的学习资料。
    发表于 03-31 11:13 5次下载

    Delphi教程之监视剪贴板

    Delphi教程之监视剪贴板,很好的Delphi资料,快来下载吧。
    发表于 04-11 16:09 9次下载

    可双向复制粘贴图片 向日葵Windows客户端9.0.3发布

    近日,向日葵远程控制软件更新了Windows客户端9.0.3,优化了同步剪贴板功能,远程Windows系统桌面时,支持富文本复制粘贴,即本地主机可直接将异地主机中的文本直接复制粘贴使用,甚至连格式
    发表于 06-27 15:48 1349次阅读

    小米手机和PC的共享剪贴板上线,PC端装云服务客户端就OK

    刘鸣称:“看到有用户在要共享剪贴板,其实我们已经支持了,只需要电脑端装小米云服务客户端就可以了。”
    的头像 发表于 11-24 09:09 7040次阅读

    苹果iOS应用程序不经过用户同意读取剪贴板数据

    据Macrumors报道,最新研究显示数十种流行的iOS应用程序,在未经用户同意的情况下,读取剪贴板的内容,其中可能包含敏感信息。
    的头像 发表于 03-16 09:19 2621次阅读

    iOS 14的隐私功能显示了复制到剪贴板的TikTok阅读文本

    开发人员开始下载并使用iOS 14 beta版,他们发现流行的视频共享平台TikTok是读取用户复制到剪贴板的文本的应用程序之一。从下面的视频中可以看到,在TikTok应用程序打开时,苹果的新隐私警告继续出现在屏幕上。
    的头像 发表于 07-03 16:33 2088次阅读

    HarmonyOS应用开发案例 剪贴板功能实现

    粘贴版是一个常用的功能,用户通过系统剪贴板服务,可实现应用之间的简单数据传递。例如:在应用A中复制的数据,可以在应用B中粘贴,反之亦可。 效果如图: 关键代码如下: public class
    的头像 发表于 03-30 10:41 1044次阅读
    HarmonyOS应用开发案例 <b class='flag-5'>剪贴板</b>功能实现

    ad复制元件怎么保持编号不变

    浏览器”来创建和管理元件库。在创建库时,为每个元件分配一个唯一的编号,该编号将在复制过程中保持不变。 复制元件:选中要复制的元件,并使用“复制”命令或快捷键(Ctrl+C)将其
    的头像 发表于 12-27 17:07 2694次阅读

    怎么将剪贴板数据导入到labview数组

    剪贴板数据导入到LabVIEW数组可以通过以下步骤完成。首先,需要使用LabVIEW自带的函数库VIs来实现剪贴板数据的获取和处理。 第一步是获取剪贴板数据。LabVIEW提供了Clipboard
    的头像 发表于 01-05 13:35 452次阅读