через генераторы и псевдосинхронный код)
Теперь другая запара:
Я хочу передать картинку через json.
Что уже есть:
1) получаю байты картинки bmp
2) кодирую в base64
3) кодирую в utf8
4) упаковываю в json
Отправляю на фрон. Вроде всё правильно, да?
Возможноли через json передать картинку?
P.s. картинка скачивается с другого ресурса на бэк и я не хочу еë сохранять на диск.
P.s.s. Исходный объект тип image из PIL
Без base64 или аналогичной техники никак
Главное, что это можно сделать, же.
Сначала заархивировать архиватором, а потом в base64
Да, я кстати когда то так делал, обычным gz, потом в base64
Решил проблему. У меня был код python такой: image = pil.Image.new(mode = "RGB", size = (240, 320)) base64.b64encode(image.tobytes()).decode('utf-8') Как оказалось, он возвращал непонятные данные. Сработал такой код: fake_file = BytesIO() image = pil.Image.new(mode = "RGB", size = (240, 320)) image.save(fake_file,"png") fake_file.seek(0) base64.b64encode(fake_file).decode('utf-8') Есть мысли в чем проблема кода сверху?
В первом случае ты получаешь сырое байтовое представление картинки (пиксели согласно текущему алгоритму кодирования цвета). Во втором - png с его хэдером
Спасибо за разъяснения. Убил на это целый день. Всего лишь эти 5 строк.
На самом деле, я был уверен до последнего, что в переменной image у меня файл формата png. Потому что если вызвать image.show() то у меня отображалось изображение с расширением png.
Обсуждают сегодня