I searched a lot on this subject but couldn\'t really find what I need. I\'ll explain my problem :
On my website, the user can upload an image. I need to resize this
This Worked for me try it. I am using Django 2.0.6 and Python 3.6.4
from django.db import models
from PIL import Image
from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile
class ImageUpload(models.Model):
name = models.CharField(max_length=100)
uploadedImage = models.ImageField(upload_to='Uploads/%Y/%m/', db_column="Upload an Image")
def save(self, *args, **kwargs):
imageTemproary = Image.open(self.uploadedImage)
outputIoStream = BytesIO()
imageTemproaryResized = imageTemproary.resize( (1020,573) )
imageTemproaryResized.save(outputIoStream , format='JPEG', quality=85)
outputIoStream.seek(0)
self.uploadedImage = InMemoryUploadedFile(outputIoStream,'ImageField', "%s.jpg" %self.uploadedImage.name.split('.')[0], 'image/jpeg', sys.getsizeof(outputIoStream), None)
super(ImageUpload, self).save(*args, **kwargs)