python 多种图片数据格式 numpy、bytes、base64 互转
import cv2
import numpy as np
import base64
from PIL import Image
import matplotlib.pyplot as plt
img1 = Image.open(r"C:\Users\xiahuadong\Pictures\风景\2.jpg")
print(img1)
plt.figure(figsize=(5, 5))
plt.imshow(img1)
plt.show()
img_numpy = np.array(img1)
print(img_numpy.shape)
(313, 500, 3)
data = cv2.imencode('.jpg', img_numpy)[1]
image_bytes = data.tobytes()
image_base64 = base64.b64encode(image_bytes).decode('utf8')
print(len(image_base64))
99068
image_bytes = base64.b64decode(image_base64)
image_numpy1 = np.frombuffer(image_bytes, dtype=np.uint8)
image_numpy2 = cv2.imdecode(image_numpy1, cv2.IMREAD_COLOR)
print(image_numpy2.shape)
(313, 500, 3)
data = cv2.imencode('.jpg', img_numpy)[1]
image_bytes = data.tobytes()
print(len(image_bytes))
74299
image_numpy1 = np.frombuffer(image_bytes, dtype=np.uint8)
image_numpy2 = cv2.imdecode(image_numpy1, cv2.IMREAD_COLOR)
print(image_numpy2.shape)
(313, 500, 3)
image_bytes = base64.b64decode(image_base64)
print(len(image_bytes))
74299
image_base64 = base64.b64encode(image_bytes).decode('utf8')
print(len(image_base64))
99068