天天看點

Python3讀寫base64格式base64使用場景

base64轉換過程
這幾天寫web,需要将使用者上傳的圖檔,實時顯示到前端頁面,然後通過Jcrop裁剪,并将裁剪後的圖檔通過canvas實時顯示到前端,最後将canvas顯示的圖檔裝換為base64格式,傳到後端django,但pillow是無法直接讀取base64格式的圖檔的,是以特地查閱了一些資料,發現python3内置了base64轉換函數,這裡分享一下使用方法...
import os, base64

# 圖檔裝換
with open("./robot.png", "rb") as f:
    # 将讀取的二進制檔案轉換為base64字元串
    bs64_str = base64.b64encode(f.read())
    # 列印圖像轉換base64格式的字元串,type結果為<class 'bytes'>
    print(bs64_str, type(bs64_str))
    # 将base64格式的資料裝換為二進制資料
    imgdata = base64.b64decode(bs64_str)
    # 将二進制資料裝換為圖檔
    with open("./robot2.png", "wb") as f2:
        f2.write(imgdata)

           

base64使用場景

對某些無關緊要的資訊進行表面加密,也就是說不行讓别人看到你明文傳資料,但别人看到也是無所謂的(浏覽器可以直接解析base64格式的圖檔檔案)
base64加密文本
import os, base64
# 文本簡單加密
bs64_my_time = base64.b64encode("真的羨慕你們這種18歲的,我還差15年呢!".encode("utf-8"))
print("bs64格式的文本(僞加密)",bs64_my_time)
my_time = base64.b64decode(bs64_my_time).decode("utf-8")
print("原文本:",my_time)
           
僞加密

base64圖檔在網頁上的表現形式

<html><body><img src="data:image/jpeg;base64,這裡放的是base64編碼" /></body></html>
           
# 使用正則從上面src中抽取base64格式的圖檔資訊
file = re.match(r"data:image/jpeg;base64,(.*)", file).group(1)