Markdown本地圖片轉base64嵌入


Markdown本地圖片轉base64嵌入

博客園在發布markdown文章時,如果你的文章中含有大量本地圖片,這個圖片拖拽(本地圖片轉網絡圖片)就會很麻煩

我的做法是將markdown中的本地圖片轉為base64嵌入,然后直接復制粘貼到博客園markdown編輯器中就可以發布了

隨便寫的,輕噴

import base64
import re
def phtot_base64(address):#將地址為address的圖片轉為base64字符串
    with open(address,"rb") as photo:
        pb=base64.b64encode(photo.read())
        return str(pb)[2:-1]
target=input("請輸入目標markdown文件地址");#例如:"D:\Markdown\Note\Machine learning\誤差與噪音.md"(兩側有引號,這也就是你選中md文件,然后shift+右鍵,復制路徑得到的結果)
target=target.replace("\\","/")
target=target[1:-1]
with open(target,"r",encoding="utf-8") as md:#打開目標文件
    transformed=open(target[0:-3]+"_transformed.md","w",encoding="utf-8")#在目標文件同一文件夾地址下產生轉換后文件
    for a in md:
        if(re.search("!\[[^]]*\].*",a)):#匹配到圖片格式
            address=re.search("(?<=\()[^\)]*",a).group().replace("\\","/")#提取圖片地址並且將反斜杠轉換為斜杠
            if not(re.match("data",address) or re.match("http",address)):#確定是本地圖片
                temp="![avatar](data:image/png;base64,"+phtot_base64(address)+")"#將圖片格式轉為base64格式
                a=re.sub("!\[[^]]*\]\([^)]*\)",temp,a)#替換base64格式圖片到源字符串
        transformed.write(a)#寫入一行
    transformed.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM