我的models.py中有以下图像字段(参见下面的代码)
我想设置一个固定的图像宽度和高度,所以它总是100x100px
以下代码是系统中已有的代码,我不确定如何传递宽度和高度,或者是否可以使用此代码将宽度和高度设置为固定大小。
image = models.ImageField(
upload_to="profiles",
height_field="image_height",
width_field="image_width",
null=True,
blank=True,
editable=True,
help_text="Profile Picture",
verbose_name="Profile Picture"
)
image_height = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
image_width = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
答案 0 :(得分:5)
class ModelName(models.Model):
image = models.ImageField(
upload_to="profiles",
null=True,
blank=True,
editable=True,
help_text="Profile Picture",
verbose_name="Profile Picture"
)
image_height = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
image_width = models.PositiveIntegerField(null=True, blank=True, editable=False, default="100")
def __unicode__(self):
return "{0}".format(self.image)
def save(self):
if not self.image:
return
super(ModelName, self).save()
image = Image.open(self.photo)
(width, height) = image.size
size = ( 100, 100)
image = image.resize(size, Image.ANTIALIAS)
image.save(self.photo.path)