OpenCV/Pillow – 画像を base64 形式に変換する方法

概要
OpenCV または Pillow で読み込んだ画像を base64 文字列に変換する方法について解説します。
Advertisement
Pillow -> base64
PIL 形式の画像を base64 の文字列に変換するには以下のようにします。
In [1]:
import base64
from io import BytesIO
from IPython.display import HTML, display
from PIL import Image
def pil_to_base64(img):
buffer = BytesIO()
img.save(buffer, format="jpeg")
img_str = base64.b64encode(buffer.getvalue()).decode("ascii")
return img_str
# 画像を読み込む。
img = Image.open("sample.jpg")
img_str = pil_to_base64(img)
# インライン画像として表示して確認する。
img_tag = f'<img src="data:image/jpeg;base64,{img_str}">'
display(HTML(img_tag))

OpenCV
OpenCV の ndarray 形式の画像を base64 の文字列に変換するには以下のようにします。
In [2]:
import base64
import cv2
from IPython.display import HTML, display
def cv_to_base64(img):
_, encoded = cv2.imencode(".jpg", img)
img_str = base64.b64encode(encoded).decode("ascii")
return img_str
# 画像を読み込む。
img = cv2.imread("sample.jpg")
img_str = cv_to_base64(img)
# インライン画像として表示して確認する。
img_tag = f'<img src="data:image/jpeg;base64,{img_str}">'
display(HTML(img_tag))

-
前の記事
OpenCV – 画像に透かし文字 (watermark) を入れる方法 2020.09.11
-
次の記事
記事がありません