0 前言
最近整理文件的时候找到了之前写的一个用于将图像转换为 base64 字符串的 Python GUI 小工具。写这个工具的初衷是当时刚刚接触 markdown,有时需要往 markdown 文件中嵌入一些图片,而向 markdown 中嵌入图片通常有以下三种方式:
- 将图片上传图床,在 markdown 文件中进行 URL 引用
- 将图片置于某个位置,在 markdown 文件中进行相对位置引用或绝对位置引用
- 将图片转换为 base64 字符串,在 markdown 文件中直接引用字符串来呈现图像
方式一有网络访问的实时要求,方式二需要保证 markdown 文件总是能访问到图片文件,两种方式都不利于文档的共享传播。为实现方式三,使用 Python + Tkinter 写了一个 GUI 小工具,它长下面这样:
代码已经上传 github,下面我直接将工程的 README 搬过来了。
1 特性
- 将单一图片转换为 base64 字符串,并将转换结果自动复制到剪贴板
- 将多图片转换为 base64 字符串,并将转换结果保存至各自的文本文件
- 转换进度显示
2 依赖
- Python 3.1 及更高版本
pyperclip
1
pip install pyperclip
tkinter
对于 windows 系统,自 Python 3.1 起,
tkinter
默认包含于 Python 发行版。对于 ubuntu 系统,需要执行下述命令安装tkinter
。1
sudo apt-get install python3-tk
xclip
对于 ubuntu 系统,在使用本工具前需要先安装
xclip
。1
sudo apt-get install xclip
3 用法
3.1 运行工具
1 | python img2base64.py |
3.2 单一图片转换
- 首先点击
Select single image
按钮选择目标图片,然后点击Convert & Copy
按钮转换图片,转换得到的 base64 字符串会自动复制到剪贴板。
3.3 多图片转换
- 首先点击
Select several images
按钮选择目标图片的存放路径,然后点击Convert & Export
按钮选择存放转换结果的路径,每张图片会被转换到各自对应的文件。
4 后记
可以使用 PyInstaller
将工具脚本及其所有依赖打包为一个单一可执行文件。这里我没有将可执行文件上传,打包方法比较简单,有兴趣得话可以查阅相关资料,通常执行下面的命令行即可:
1 | pyinstaller -F -w img2base64.py |