ResizeToFit(宽度=最大(source_pic_width, 750)
ResizeToFit(width=max(source_pic_width, 750)
django-imagekit==4.0
我组织了这样的事情:
class Image(CommonUrlMethodsMixin, GeneralModel):
pic = models.ImageField(verbose_name=_("Image"), upload_to=get_upload_path)
pic_xs = ImageSpecField(source='pic',
processors=[ResizeToFit(width=500)],
format='JPEG',
options={'quality': 60},
autoconvert=True)
pic_sm = ImageSpecField(source='pic',
processors=[ResizeToFit(width=750)],
format='JPEG',
options={'quality': 60})
pic_md = ImageSpecField(source='pic',
processors=[ResizeToFit(width=970)],
format='JPEG',
options={'quality': 60})
pic_lg = ImageSpecField(source='pic',
processors=[ResizeToFit(width=1170)],
format='JPEG',
options={'quality': 60})
问题是用户可以上传小图片。像 800 像素宽。在这种情况下,似乎没有理由将其扩展到 970 和 1170。让它只是原始的 800。
在这种情况下,我更喜欢像 ResizeToFit(width=max(self.pic.width, 750) 这样的东西。但我没能做到。
你能给我解释一下这件事吗?
ResizeToFiT
接受另一个名为 upscale
的参数。默认为True
,但设置为False
时,如果图片尺寸小于目标尺寸,则不会放大。
processors=[ResizeToFit(width=970, upscale=False)]
django-imagekit==4.0
我组织了这样的事情:
class Image(CommonUrlMethodsMixin, GeneralModel):
pic = models.ImageField(verbose_name=_("Image"), upload_to=get_upload_path)
pic_xs = ImageSpecField(source='pic',
processors=[ResizeToFit(width=500)],
format='JPEG',
options={'quality': 60},
autoconvert=True)
pic_sm = ImageSpecField(source='pic',
processors=[ResizeToFit(width=750)],
format='JPEG',
options={'quality': 60})
pic_md = ImageSpecField(source='pic',
processors=[ResizeToFit(width=970)],
format='JPEG',
options={'quality': 60})
pic_lg = ImageSpecField(source='pic',
processors=[ResizeToFit(width=1170)],
format='JPEG',
options={'quality': 60})
问题是用户可以上传小图片。像 800 像素宽。在这种情况下,似乎没有理由将其扩展到 970 和 1170。让它只是原始的 800。
在这种情况下,我更喜欢像 ResizeToFit(width=max(self.pic.width, 750) 这样的东西。但我没能做到。
你能给我解释一下这件事吗?
ResizeToFiT
接受另一个名为 upscale
的参数。默认为True
,但设置为False
时,如果图片尺寸小于目标尺寸,则不会放大。
processors=[ResizeToFit(width=970, upscale=False)]