所以我在 Django 中有一个表单,用于将图像上传到 ImageField。这很好用。然后我将 request.FILES['image'] 传递给一个名为 MakeThumbnail 的函数以进行进一步处理。
MakeThumbnail 不能很好地工作。我从一系列 StackOverflow 线程中组装了这个,但我认为我缺少一些关键概念。这是我的代码。
def MakeThumbnail(file):
img = Image.open(file)
thumbnail = img.thumbnail((128, 128), Image.ANTIALIAS)
thumbnailString = StringIO.StringIO(thumbnail)
newFile = ContentFile(thumbnailString)
return newFile
堆栈跟踪说我在这条线上失败了:newFile = ContentFile(thumbnailString)。它给了我以下错误:预期的读取缓冲区,找到实例
不过,在查看局部变量之后,我想我可能会在 thumbnail = img.thumbnail((128, 128), Image.ANTIALIAS) 失败:
thumbnailString : <StringIO.StringIO instance at 0x0000000003B39748>
file : <InMemoryUploadedFile: Desert.jpg (image/jpeg)>
thumbnail : None
img : <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=128x96 at 0x3B25C08>
请注意,缩略图是无。它应该包含一些东西。有人对我有一些提示吗?
谢谢你!