Я загрузил более 10 изображений с помощью следующего кода в моем приложении django (используя библиотеку подушек изображений).
def save(self):
im = Image.open(self.image)
output = BytesIO()
im = im.resize((500, 500))
im.save(output, format='JPEG', optimize=True, quality=95)
output.seek(0)
self.image = InMemoryUploadedFile(output, 'ImageField', "%s.jpg" % self.image.name.split('.')[0], 'image/jpeg',
sys.getsizeof(output), None)
super(Report_item, self).save()
Но теперь мое приложение Django выдает мне следующую ошибку.
Exception Type: OSError
Exception Value:
cannot write mode RGBA as JPEG
Я получил решение от одного из ответов в StackOverflow, чтобы изменить тип изображения с любого другого на png.
Теперь мой код выглядит так, но процесс кажется немного медленным, так какпо сравнению с тем, что было раньше.
def save(self):
im = Image.open(self.image)
output = BytesIO()
im = im.resize((500, 500))
im.save(output, format='PNG', optimize=True, quality=95)
output.seek(0)
self.image = InMemoryUploadedFile(output, 'ImageField', "%s.png" % self.image.name.split('.')[0], 'image/jpeg',
sys.getsizeof(output), None)
super(Report_item, self).save()
Теперь изображение загружается без проблем.
Пожалуйста, объясните мне, почему я получил эту ошибку после загрузки более 10 фотографий.Это правильный способ сделать это.Что делать, если я хочу сохранить в формате JPEG?Моя заявка находится в производстве.Поэтому я хочу использовать только правильный код для правильной работы.Пожалуйста, помогите мне разобраться.