剪切板圖片轉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,再固定到開始菜單就可以使用啦。

完整工程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章