0

我有一个标准的图像模型。

class ImageUpload(models.Model):
    image = models.ImageField(upload_to='images/%Y/%m/%d')
    title = models.CharField(max_length=20)    

但是,当我创建模型时,我没有为高度和宽度创建字段。无论如何,我是否可以在不向模型添加任何内容的情况下找到视图中图像的高度和宽度?如果没有,我怎么能将高度和宽度字段添加到模型中并让它从已经存储在数据库中的图像中自动添加?

4

3 回答 3

3

或者你可以使用 django get_image_dimensions

from django.core.files.images import get_image_dimensions

w, h = get_image_dimensions(image) # Returns the (width, height) of an image, given an open file or a path
于 2013-07-07T21:53:07.877 回答
1

对于新上传的图像,使用信号在模型的 post_save 中处理它:

django.db.models.signals.post_save

要获得大小,使用 PIL,

img = Image.open(path_to_file)
width, height = img.size

对于现有图像,您可能只想编写一些脚本来为现有数据库条目执行此操作。

编写脚本的替代方法是更新您的应用程序以尝试查找宽度、高度并更新它们(如果尚未设置)。

于 2013-07-07T20:40:32.030 回答
-1

您可以为此使用 PIL(Python 图像库):

from PIL import Image
img_file = Image.open(path_to_imagefile)
w,h = img_file.size
于 2013-07-08T08:08:23.673 回答