Django soft изменяет размер загруженного изображения на несколько размеров и загружает в соответствующую папку

У меня есть следующая модель в моем приложении

def image_path(self, filename):
    return 'app_name/images/{}/{}'.format(slugify(self.name), filename)
        
class Color(models.Model):
    name = CICharField(max_length=22, unique=True)
    image = models.ImageField("Image", upload_to=image_path, blank=True)

После загрузки изображения я хочу создать 3 размера изображения: маленькое (100 на 100), среднее (300 на 300) и большое (800 на 800) с мягкой обрезкой изображения. Затем я хочу управлять структурой URL для моей загрузки.

Например.

Исходный URL-адрес изображения из поля изображения = 'app_name/images/image_1.jpg', если я загружу изображение, тогда будут созданы следующие изображения.

small = 'app_name/images/small/image_1.jpg'
medium = 'app_name/images/medium/image_1.jpg'
large = 'app_name/images/large/image_1.jpg'

Может ли кто-нибудь сказать мне, как я могу добиться этого на Django.

Спасибо.


person Chandra Shekhar Pandey    schedule 06.09.2020    source источник


Ответы (1)


Для обработки изображений лучше использовать OpenCV или Pillow или Numpy. Возможно, я ошибаюсь, но Django должен нормально работать со сценариями на основе OpenCV.

Здесь у вас есть некоторые основные операции с OpenCV.

Здесь у вас есть способ сохранить обработанные изображения в django (аналогично тому, что вы публикуете).

Здесь код изменения размера изображений с использованием OpenCV.

person emichester    schedule 06.09.2020