对Pillow对象进行byte编码并post,然后接收再解码为pillow对象

发布时间 2023-08-15 15:12:24作者: 海_纳百川
from PIL import Image
import base64
import json
import requests

# 加载图像
image_path = "path_to_your_image.jpg"
image = Image.open(image_path).convert("RGB")
size = image.size

# 将图像转换为Base64编码的字符串
image_bytes = image.tobytes()
base64_image = base64.b64encode(image_bytes).decode()

# 创建包含图像信息的字典
image_data = {
    "base64_image": base64_image,
    "image_size": size,
}

# 将图像信息字典序列化为JSON格式字符串
json_data = json.dumps(image_data)

# 使用post发送请求
response = requests.post(url, data=json_data)

# 在接收端进行解码,假设接收的数据是request_data
json_recieve = request_data.json()
size = json_recieve["image_size"]
base64_image = json_recieve["base64_image"]

image_bytes = base64.b64decode(base64_image)
# 此时的pil_image就和image是同一个数据了
pil_image = Image.frombytes('RGB', size, image_bytes)