如何在 Django rest 框架中使用枕头压缩用户上传的图像



当用户上传时,您将如何压缩图像

from PIL import Image
class photo(models.Model):
title = models.CharField(max_length=100)
uploader = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
image_url = models.ImageField(upload_to='images', null=True)

在保存方法中执行

from PIL import Image
class photo(models.Model):
title = models.CharField(max_length=100)
uploader = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, null=True)
image_url = models.ImageField(upload_to='images/', null=True)
def save(self, *args, **kwargs):
instance = super(photo, self).save(*args, **kwargs)
img = Image.open(instance.image_url.path)
img.save(instance.image_url.path,quality=20,optimize=True)
return instance

"优化"标志将尽可能减小其大小。

最新更新