我想在保存圖像之前調整圖像大小。我在模型上使用了自定義保存方法,但是我遇到了一個問題。模型保存方法。保存前調整圖像大小
這是我現在的代碼:
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)
這種失敗,並告訴我,該文件無法找到。據我所知,這與現在的圖像只存在於內存中並因此不能像這樣打開一樣。
所以我的問題是:我如何打開圖像從內存並將其保存回內存,所以默認的保存方法可以做它的事情呢?
非常感謝您的幫助,這是推動我逼瘋了:)
非常感謝。首先想到節約,但後來又忘了。不知道爲什麼。謝謝你的名字。我一直使用複數命名我的所有模型,這個必須通過最後一次檢查:) – 2010-09-08 21:20:34