即使填充了width_field和height_field,ImageField也会从磁盘读取图像信息

时间:2014-07-02 01:02:40

标签: django image disk django-models

Django的ImageField从磁盘读取图像标题以确定图像的宽度和高度,即使我的模型有专用字段来保存它们,由width_fieldheight_field指定。我有大约20,000,000张图片,所以这对我的回复时间没有帮助。

查看源代码,似乎Django读取图像一次(无论width_fieldheight_field的值)并将计算出的大小存储为ImageFile上的属性,每次请求后都会被删除。实际上,每当我在模板中获取图像的大小时,我都会读取图像标题。

只有在使用ImageField(来自ImageFieldFile)的属性访问图像的宽度和高度时才会触摸磁盘,因此,如果我只是直接从我的模型访问宽度和高度字段,图像不是从磁盘读取的。

这种行为背后的原因是什么?每当我使用ImageField公开的属性访问图像的宽度和高度时,有没有办法阻止ImageField从磁盘读取图像信息?

0 个答案:

没有答案