Django image resizing and convert before upload

后端 未结 8 1227
余生分开走
余生分开走 2020-12-07 19:15

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

8条回答
  •  忘掉有多难
    2020-12-07 20:02

    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)
    

提交回复
热议问题