使用PIL在Django网站上旋转通过邮件上传的图像

1 投票
1 回答
913 浏览
提问于 2025-04-16 19:25

我的网站允许用户通过电子邮件上传照片到他们的相册,这个功能运行得很好。不过,使用iPhone拍摄的竖屏照片却无法正确旋转。我想在“邮件过滤”过程中使用PIL来旋转这些照片。以下是我用来成功从电子邮件中获取图像并保存到我的Django模型的代码。

    image = ContentFile(b64decode(part.get_payload()))
    img = Photo(user=user)
    filename = part.get_filename().lower()
    img.img.save(filename, image)
    img.save()

*更新后的代码,成功将临时图像旋转并保存到本地目录 *

     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 个回答

1

这个链接 http://effbot.org/imagingbook/image.htm 明确说明了 rotate() 方法会返回一个新的图像实例。

文档里没有提到关于原地操作的内容。难道没有吗?

撰写回答