Сохранить изображение, созданное с помощью PIL, в модель Django - PullRequest
12 голосов
/ 15 июня 2011

Я успешно создал и повернул изображение, которое было отправлено по электронной почте в каталог на моем сервере, используя следующий код:

      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 Ответ

16 голосов
/ 18 июня 2011

Я решил проблему с помощью следующего кода:

       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`? .Работает без нареканий !!!

...