问这个我意识到这个话题很常见,也许已经多次讨论了。但它仍然不清楚,所以我试图从响应中获取图像文件,调整大小并将其保存在模型中。我处理错误:
/ saveimage /中的AttributeError ' InMemoryUploadedFile'对象没有属性' get'
我的代码是这样的:
import Image
import cStringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
def get_and_save_image():
file = cStringIO.StringIO()
size = (200,200)
color = (255,0,0,0)
image = Image.new("RGBA", size, color)
image.save(file, format='JPEG')
image_file = InMemoryUploadedFile(file, None, 'foo.jpg', 'jpeg', None, None)
image_file.seek(0)
return image_file
Http回复:
FILES:
some_image = <InMemoryUploadedFile: image.jpg (image/jpeg)>
将图像保存到ImageField是否正确?提前谢谢。
答案 0 :(得分:0)
以下两种方法可以做到这一点:
将图像保存在models.ImageField中,然后在响应中返回图像的url,您可以在javascript中创建图像元素并添加网址。
在base64中对图像的数据进行编码,并将其作为字符串返回,您可以在前端轻松使用。这是一个例子:
后端:
from PIL import Image
from io import BytesIO
import base64
def get_and_save_image():
size = (200,200)
color = (255,0,0,0)
image = Image.new("RGBA", size, color)
img_buffer = BytesIO()
image.save(img_buffer, format='JPEG')
response_string = base64.b64encode(img_buffer.getvalue())
return response_string
前端:
<img src="data:image/jpg;base64,{{ THE_RESPONSE_STRING }}">