我有一个用 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)
如果可能的话,我想在保存之前减少图像的重量。我哪里错了?谢谢