0

尝试显示较大图像的缩略图时出现上述错误。全尺寸图像工作正常。

这是 models.py 文件中图像定义的代码。

    def _get_thumb_url(self, folder, size):
        """ get a thumbnail giver a folder and a size. """
        if not self.coverart:
            return '#'
        upload_to = path.dirname(self.coverart.path)
        tiny = path.join(upload_to, folder, path.basename(self.coverart.path))
        tiny = path.normpath(tiny)
        if not path.exists(tiny):
            import Image
            im = Image.open(self.coverart.path)
            im.thumbnail(size, Image.ANTIALIAS)
            im.save(tiny, 'JPEG')
        return path.join(path.dirname(self.coverart.url), folder, path.basename(self.coverart.path))

    def get_thumb_url(self):
        return self._get_thumb_url('thumb_100_100', (100,100))

    def thumb(self):
        """ Get thumb <a>. """
        link = self.get_thumb_url()
        if link is None:
            return '<a href="#" target="_blank">NO IMAGE</a>'
        else:
            return '<img src=%s />' % (link)
    thumb.allow_tags = True

    def fullpicture(self):
        """ Get full picture <a>. """
        link = "%s%s" % (settings.MEDIA_URL, self.coverart)
        if link is None:
            return '<a href="#" target="_blank">NO IMAGE</a>'
        else:
            return '<img src=%s />' % (link)
    thumb.allow_tags = True

这是在我的模板文件中导致我遇到问题的行:

<div class="coverart" >{{ spmodel.thumb|safe }}</div>

如果我将其更改为此,则图像显示正常(显然不是缩略图,但这是我想要的):

<div class="coverart" >{{ sp.fullpicture|safe }}</div>

有人对可能导致此问题的原因有任何想法吗?

4

1 回答 1

0

im.save如果目录不存在,我认为不会创建目录。最好创建具有​​所需路径的空文件,打开它,然后将图像保存到其中。

于 2011-05-26T07:19:12.090 回答