剪切板图片转base64编码工具

关注我的公众号c137Lab获取更多相关内容

在这里插入图片描述

​ Markdown 是一种轻量级标记语言,使用纯文本格式编写文档。本公众号的文章都是使用 Markdown 编写的。Github、CSDN、知乎等平台也同样支持 Markdown 编辑,在Markdown 中还可以内嵌 Latex 公式,在网上经常能够看到使用 Markdown 编写的格式优美的文档。

​ 但是,由于是使用 纯文本格式 ,在Markdown 中插入图片可以说是非常令人头疼的一件事了。

“markdown一时爽, 分享火葬场”

​ 第一种方法,使用 图床 在 Markdown 中插入图片。但是在线图床这个东西作者本人是极其讨厌的,大部分图床难以管理、混乱不堪,而且将图片保存到在线图床,有可能在过了一段时间后图床失效,你文章中的图片就全部蒸发了,非常尴尬。

​ 第二种方法,使用 本地图片 地址传入。但是这又让文件管理变得复杂,而且当你的本地环境中没有这张图片时,图片又会蒸发。而且保存在本地又给文件管理带来了麻烦。

​ 那么解决方案是什么呢!—— base64

​ base64 编码的原理在此不多进行赘述,详情参看维基百科 。Markdown中支持嵌入 base64 编码的图片,格式如下:

![图片名称](base64编码)
或者
![图片名称][链接]
[链接]:base64编码

​ 接下来就自己动手使用 Python 写一个小工具,来实现剪切板图片到 base64 的转换。为了方便操作,主要实现以下功能:

  1. 读取剪切板中的图片(读取截图)
  2. 将图片转换为 base64 编码
  3. 将转换完成的 base64 编码导入到剪切板
  4. 生成一个应用程序(exe),实现一键操作

废话少说,直接上代码:

import base64
from PIL import Image
from PIL import ImageGrab
import pyperclip
from io import BytesIO

im = ImageGrab.grabclipboard()


def pil_base64(image):
    img_buffer = BytesIO()
    w, h = image.size
    # image.thumbnail((128, 128))
    image.save(img_buffer, format='JPEG', quality=95)
    byte_data = img_buffer.getvalue()
    base64_str = base64.b64encode(byte_data)
    return base64_str


if isinstance(im, Image.Image):
    # print(im.format, im.size, im.mode)
    px = im.load()
    msg = str(pil_base64(im))
    msg = 'data:image/png;base64,' + msg[2:-2]
    print(msg)
    pyperclip.copy(msg)

else:
    pass

之后使用 python installer 将其打包成一个 exe,再固定到开始菜单就可以使用啦。

完整工程

猜你喜欢

转载自blog.csdn.net/verse_monger/article/details/105899925
今日推荐