ResizeToFit(width=max(source_pic_width, 750)
Джанго-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). Но я не смог этого сделать.
Не могли бы вы объяснить мне этот вопрос?
1 ответ
Решение
ResizeToFiT
принимает другой параметр с именем upscale
, По умолчанию True
, но когда установлено False
, изображение не будет увеличено, если его размеры меньше целевых размеров.
processors=[ResizeToFit(width=970, upscale=False)]