我正在学习使用'枕头5.0'后面的书'用蟒蛇自动化无聊的东西'
有关图像对象的信息
In [79]: audacious = auda
In [80]: print(audacious.format, audacious.size, audacious.mode)
PNG (1094, 960) RGBA
Run Code Online (Sandbox Code Playgroud)
当我尝试转换文件类型时,它报告错误.
In [83]: audacious.save('audacious.jpg')
OSError: cannot write mode RGBA as JPEG
Run Code Online (Sandbox Code Playgroud)
书中没有这样的错误.
我正在尝试在项目上传之前调整图像大小并降低图像质量。这是我尝试过的,
def save(self):
im = Image.open(self.image)
output = BytesIO()
im = im.resize(240, 240)
im.save(output, format='JPEG', quality=95)
output.seek(0)
self.image = InMemoryUploadedFile(output, 'ImageField', "%s.jpg" % self.image.name.split('.')[0], 'image/jpeg', sys.getsizeof(output), None)
super(Model, self).save()
Run Code Online (Sandbox Code Playgroud)
如果我上传jpg图像,它工作正常,但如果我上传png或任何其他图像类型,它就不起作用,它会引发诸如cannot write mode RGBA as JPEG&之类的错误cannot write mode P as JPEG。
我们怎样才能解决这个问题?谢谢你!