我已经使用以下代码成功创建并旋转了通过电子邮件上传到我的服务器上的目录的图像:
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()
旋转的图像存在于目录中,但是当我尝试将该图像添加到我的模型中时,它不会保存.我失踪了什么任何帮助将不胜感激.
解决方法
我用以下代码解决了这个问题:
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()
我在这里找到答案How do you convert a PIL `Image` to a Django `File`?.工作无瑕疵!