Сохранить изображение, созданное с помощью PIL, до модели django
Я успешно создал и повернул изображение, которое было загружено по электронной почте в каталог на моем сервере, используя следующий код:
image = ContentFile(b64decode(part.get_payload()))
im = Image.open(image)
tempfile = im.rotate(90)
tempfile.save("/srv/www/mysite.com/public_html/media/images/rotate.jpg", "JPEG")
img = Photo(user=user)
img.img.save('rotate.jpg', tempfile)
img.save()
Повернутое изображение существует в каталоге, однако, когда я пытаюсь добавить это изображение в свою модель, оно не сохраняется. Что мне не хватает? Любая помощь будет принята с благодарностью.
Ответы
Ответ 1
Я решил проблему со следующим кодом:
image = ContentFile(b64decode(part.get_payload()))
im = Image.open(image)
tempfile = im.rotate(270)
tempfile_io =StringIO.StringIO()
tempfile.save(tempfile_io, format='JPEG')
image_file = InMemoryUploadedFile(tempfile_io, None, 'rotate.jpg','image/jpeg',tempfile_io.len, None)
img = Photo(user=user)
img.img.save('rotate.jpg', image_file)
img.save()
Я нашел ответ здесь Как вы конвертируете PIL` Image` в Django `File`?. Работает безупречно!!!