Как изменить размер изображения с Django при загрузке на AWS S3? - PullRequest
0 голосов
/ 21 апреля 2020

Я загружаю и храню свои медиафайлы в DigitalOcean Spaces (который построен на AWS) с Django с использованием пакета Boto 3. Все работает нормально, и я могу просматривать свои изображения на своем сайте, однако я получаю сообщение об ошибке при попытке изменить изображение с помощью подушки при загрузке. Я хотел бы преобразовать изображения в JPEG и изменить их размеры и оптимизировать.

Вот так выглядит текущая функция сохранения моей модели:

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)
    if self.image:
        img = Image.open(self.image.path)
        if img.mode != 'RGB':
            img = img.convert('RGB')
        if img.width > 100:
            ratio = img.width / img.height
            height = 100 / ratio
            output_size = (100, height)
            img.thumbnail(output_size)
        img = ImageOps.exif_transpose(img)
        img.save(self.image.path, optimize=True, quality=90, format='JPEG')

Если кто-нибудь может мне помочь, я был бы очень признателен!

1 Ответ

0 голосов
/ 23 апреля 2020

Я думаю, что самый простой способ сделать это (выбор формата изображения, изменение размера и оптимизация изображения) - это использовать инструмент оптимизации изображения. Я бы предложил ImageKit , поскольку он предлагает все функции, которые вы ищете, с простыми интеграциями и даже имеет план Freemium. Но в случае, если ваше потребление пропускной способности выходит за пределы их предела плана freeemium, их ценовые уровни довольно рентабельны по сравнению с другими доступными инструментами.

...