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 px宽。在这种情况下,似乎没有理由把它延伸到970和1170。让它只是原来的800。
在这种情况下,我更喜欢类似ResizeToFit(width=max(self.pic.width,750) )这样的东西。但我没能做到。
你能给我解释一下这件事吗?
发布于 2017-05-19 07:17:26
ResizeToFiT接受另一个名为upscale的参数。默认情况下是True,但是当设置为False时,如果图像的尺寸小于目标尺寸,则图像不会被放大。
processors=[ResizeToFit(width=970, upscale=False)]
https://stackoverflow.com/questions/43800546
复制相似问题