JPG в строку Base64 и обратно (Python)
У меня 2 изображения формата JPG, я хочу передать их в свой API как файл JSON, зашифровав в Base64 как строку, потом на сервере я получаю этот файл и превращаю обратно в изображение. Я искал способы как JPG зашифровать в строку Base64, но то ли я что-то сделал не так, то ли тот код не верный (Изображения не открываются, пишет что они повреждены).
Вот код кодирования изображения (Python):
import base64
import json
inp1 = input("Enter file1 name: ")
inp2 = input("Enter file2 name: ")
with open(inp1, "rb") as image_file:
str1 = base64.b64encode(image_file.read())
with open(inp2, "rb") as image_file:
str2 = base64.b64encode(image_file.read())
with open("test.json", 'w') as f:
data = {"style":str(str1), "image":str(str2)}
json.dump(data, f)
В двух input'ах пишем имена файлов: style.jpg и image.jpg
Результатом должен стать JSON файл, он будет выглядить так:
{"style":"<Строка Base64>", "image":"<Строка Base64>"}
Потом мы загрузили наш JSON файл на сервер и там уже мы дешифруем наши строки:
def base64_to_image(img):
data = base64.b64decode(img)
name = f'uploads/img{random.randint(0, 10000)}.jpg'
with open(name, 'wb') as f:
f.write(data)
return name
with open('uploads/test.json') as json_file:
# JSON файл хранится в папке uploads
data = json.load(json_file)
style = data['style']
image = data['image']
base64_to_image(style)
base64_to_image(image)
В итоге мы получаем два не рабочих изображения в папке uploads, как это исправить?