gpt4 book ai didi

python - 模型保存方法。保存前调整图像大小

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

我正在尝试在保存图像之前调整图像大小。我在模型上使用自定义保存方法,但遇到了障碍。

这是我现在的代码:

class UserImages(models.Model):
height = models.CharField(blank=True, max_length=100)
width = models.CharField(blank=True, max_length=100)
image = models.ImageField(upload_to="UserImages/%Y/%m/%d", height_field='height', width_field='width')
owner = models.ForeignKey(User)

def __unicode__(self):
return str(self.image)
def save(self, *args, **kwargs):
if self.image:
filename = str(self.image.path)
img = Image.open(filename)

if img.mode not in ('L', 'RGB'):
img = img.convert('RGB')

img = ImageOps.fit(img, (180,240), Image.ANTIALIAS, 0, (0.5, 0.5))
img.save(self.image.path)
super(UserImages, self).save(*args, **kwargs)

此操作失败并告诉我找不到该文件。据我所知,这与到目前为止图像只存在于内存中,因此无法像这样打开有关。

所以我的问题是:如何从内存中打开图像并将其保存回内存,以便默认保存方法可以用它来完成它的任务?

非常感谢您的帮助,这让我陷入困境:)

最佳答案

在尝试访问其 ImageField 之前,您需要保存您的 UserImages

可以在此代码段中找到如何执行此操作的示例:

基本上:

super(UserImages, self).save()
PS。您的模型应该有一个单一的名称,例如 UserImage 而不是 UserImages

关于python - 模型保存方法。保存前调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667890/

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