Задать вопрос
YardalGedal
@YardalGedal
yeah boy

Как преобразовать PIL объект в Bytes?

image_content = requests.get(image_url).content

image = Image.open(BytesIO(image_content))
image = image.crop((0, 0, image.size[0], image.size[0]*0.975))
image_content = BytesIO()
image.save(image_content, format='JPEG')

requests.post(url, files={'photo': ('upload.jpg', image_content)})

Почему, в данном случае, изображение не отправляется на сервер? Думаю ошибка тут

image_content = BytesIO()
image.save(image_content, format='JPEG')

Но усердное гугление пока ничего не дало.
  • Вопрос задан
  • 3778 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
from PIL import Image
import requests
from io import BytesIO

response = requests.get(url)
img = Image.open(BytesIO(response.content))


дальше сохраняешь, у теюя в img уже объект с данными

хз что за манипуляции с image_content = BytesIO()

на сервер просто все

with open(filename, 'rb') as f:
        r = requests.post(url, data=f.read())
Ответ написан
ha7y
@ha7y
Проактивный менеджер IT проектов
Обобщая длинную переписку в коментах к предыдущему ответу, получается как-то так:
image_content = requests.get(image_url).content

image = Image.open(BytesIO(image_content))
image = image.crop((0, 0, image.size[0], image.size[0]*0.975))
image_content = BytesIO()
image.seek(0)
image.save(image_content, format='JPEG')
image_content.seek(0)

requests.post(url, files={'photo': ('upload.jpg', image_content)})


Пример кода в github'е
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы