gpt4 book ai didi

django - 如何在django python中压缩上传的图像

转载 作者:行者123 更新时间:2023-12-05 06:35:40 24 4
gpt4 key购买 nike

已经阅读了许多关于如何压缩图像的 python 教程,使用了 PILLOW 但它不起作用。如果我能在我的 django views.py 中获得有关如何使用 PILLOW 进行图像压缩的完整文档,我将不胜感激

最佳答案

我曾在 pillow 中使用 thumbnail() 来压缩之前在 models.py 中的图像 thumbnail() 在调整图像大小时不会改变图像的纵横比。

import sys

from django.db import models
from PIL import Image
from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile

def compressImage(uploaded_image):
image_temp = Image.open(uploaded_image)
outputIoStream = BytesIO()
image_temp.thumbnail( (1600,1600) )
image_temp.save(outputIoStream , format='JPEG', quality=100)
outputIoStream.seek(0)
uploaded_image = InMemoryUploadedFile(outputIoStream,'ImageField', "%s.jpg" % uploaded_image.name.split('.')[0], 'image/jpeg', sys.getsizeof(outputIoStream), None)
return uploaded_image

class ABC(models.Model):
name = models.CharField(max_length=200)
image = models.ImageField(upload_to=/upload/path/here/, null=True, blank=True)

def save(self, *args, **kwargs):
if not self.id:
self.image = compressImage(self.image)
super(ABC, self).save(*args, **kwargs)

关于django - 如何在django python中压缩上传的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49646707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com