gpt4 book ai didi

python - Django 图像大小调整脚本

转载 作者:太空宇宙 更新时间:2023-11-04 09:40:25 24 4
gpt4 key购买 nike

你好,我有一个项目,图像上传并保存在媒体的子文件夹中,从不设置图像大小,所以现在图像保存 4mb,最终总大小为 40GB。

如果图像位于单个文件夹中,我知道如何编写脚本,但有人可以指导我这样做以检查文件夹中的所有图像并调整其大小吗?即使它在一个子文件夹和另一个子文件夹中。

使用 Django 和 python

图片上传功能

def artwork_theme_name(instance, filename):
path, name = get_hashed_upload_to(instance.id, filename)
return 'theme/{}/{}'.format(path, name)

上传模型

class ArtworkForeground(models.Model):
title = models.CharField(_("title"), max_length=128)
description = models.TextField(_("description"))
foreground = models.ImageField(_("foreground image"), upload_to=artwork_theme_name)

最佳答案

这里我用缩小图像覆盖现有图像。 artwork.foreground 是一个文件指针,我们将 fp 传递给 PIL 类。 Image 类的 save() 方法将文件名/包含路径的文件名作为第一个参数。那时 .path 属性就派上用场了

from PIL import Image


def do_resize(image):
pil_img = Image.open(image)
resize_limit = 100, 150
pil_img.thumbnail(resize_limit, Image.ANTIALIAS)
pil_img.save(<b>image.path</b>)


for artwork in ArtworkForeground.objects.filter(foreground__isnull=False):
do_resize(artwork.foreground)

UPDATE-1
我应该把这段代码放在哪里?

If you set some kind of restriction or validation from Now Onwards, just run this script in your Django Shell ( This is only for a one time use)

关于python - Django 图像大小调整脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51925228/

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