我在Django项目中使用wand,从不同类型的文件生成缩略图,例如pdf,所有缩略图生成过程都在内存中完成,源文件来自请求,缩略图是保存到临时文件,然后Django FileFiled将图像保存在正确的路径中,但生成的缩略图保持初始大小,这是我的代码:
with image.Image(file=self.content.file, format="png") as im: # self.content is a django model FileField didn't saved yet, so the file inside is still in memory (from the request)
im.resize(200, 200)
name = self.content.file.name
self.temp = tempfile.NamedTemporaryFile()
im.save(file=self.temp)
self.thumbnail = InMemoryUploadedFile(self.temp, None, name + ".png", 'image/png', 0, 0, None) # then self.thumnail as FileField saves the image
你知道发生了什么吗?可能是一个错误?我已经在wand github页面上将其报告为问题。
答案 0 :(得分:0)
问题来自于您的PDF有多个页面这一事实。如果您只调整第一页(您要显示的页面)的大小,则可以正常工作。尝试在with
声明后添加以下行:
im = image.Image(image=im.sequence[0])
但我同意你的说法,你的版本应该也可以。