目的
Base64でエンコードされた画像データをデコードします。
投稿理由
Base64で画像をエンコードするプログラムは探せばよくありますが、
デコードして得た画像を保存するプログラムは探した限り見つからなかった為投稿しました。
使用言語
Python3.7.0
Base64で画像をエンコードする
##エンコードするためのプログラム
import base64
#Base64でエンコードする画像のパス
target_file=r"original.jpg"
#エンコードした画像の保存先パス
encode_file=r"encode.txt"
with open(target_file, 'rb') as f:
data = f.read()
#Base64で画像をエンコード
encode=base64.b64encode(data)
with open(encode_file,"wb") as f:
f.write(encode)
Base64でデコードして画像を保存する。
デコードする文字列(さっきの画像をエンコードした文字列)
デコードするためのプログラム
import cv2
import base64
import numpy as np
import io
#Base64でエンコードされたファイルのパス
target_file=r"encode.txt"
#デコードされた画像の保存先パス
image_file=r"decode.jpg"
with open(target_file, 'rb') as f:
img_base64 = f.read()
#バイナリデータ <- base64でエンコードされたデータ
img_binary = base64.b64decode(img_base64)
jpg=np.frombuffer(img_binary,dtype=np.uint8)
#raw image <- jpg
img = cv2.imdecode(jpg, cv2.IMREAD_COLOR)
#画像を保存する場合
cv2.imwrite(image_file,img)
#表示確認
cv2.imshow('window title', img)
cv2.waitKey(0)
cv2.destroyAllWindows()