我有一个用Django 1.10开发的网站。用户可以将图像发送到网站。不幸的是有很重的图像! (> 1个月)。
目前,当尺寸大于或等于4000 * 4000时,我会调整到128 * 128,但这对于重量来说还不够......
Google建议使用Jpegoptim和Optipng。所以我尝试直接在我的Django代码中使用这些工具,但它不起作用......(我已经安装了jpegoptim和optipng):
def optimize(path):
runString = {
".jpeg": u"jpegoptim -f --strip-all '%(file)s'",
".jpg": u"jpegoptim -f --strip-all '%(file)s'",
".png": u"optipng -force -o7 '%(file)s' && advpng -z4 '%(file)s' && pngcrush -rem gAMA -rem alla -rem cHRM -rem iCCP -rem sRGB -rem time '%(file)s' '%(file)s.bak' && mv '%(file)s.bak' '%(file)s'"
}
ext = splitext(path)[1].lower()
if ext in runString :
print("ok")
subprocess.Popen(runString[ext] % {'file': path}, shell=True)
class ImageUser(models.Model):
image = models.ImageField(upload_to="imageUser/", null=True)
def save(self, *args, **kwargs) :
super(ImageUser, self).save()
image = Image.open(self.image.path)
optimize(self.image.path)
image.save(self.image.path)
如果可能的话,我想在保存之前减轻图像的重量。 哪里错了? 谢谢