from PIL import Image
from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile
def save_image(output, name, format):
return InMemoryUploadedFile(
output,
'ImageField',
"%s.jpg" % name.split('.')[0],
f'image/{format}',
sys.getsizeof(output),
None
)
def image_save(self, *args, **kwargs):
im2 = Image.open(self.avatar)
im2 = im2.resize((50, 50))
try:
im2.save(output, format='JPEG', quality=100)
format = 'jpeg'
except OSError:
im2.save(output, format='PNG', quality=100)
format = 'png'
output.seek(0)
self.small_avatar = save_image(output, self.avatar.name, format)
Попробуй что-то вроде этого, я здесь открываю картинку, уменьшаю ее размер, у тебя для этого есть 2 переменные, после чего записываю в бинарник и сохраняю