Sorl-thumbnail生成黑色方块而不是图像

时间:2014-11-05 16:27:51

标签: python django sorl-thumbnail

我在Vagrant VM中开发我的项目,我使用的软件版本是:

  • Ubuntu 12.04
  • Django 1.6
  • Sorl Thumbnail 11.12
  • Pillow 2.5.3

我在路径/var/www/django/my_project/media/icons中有一些图片,我有一个指向该路径的 ImageField 的模型。

我的 settings.py

中也有THUMBNAIL_DEBUG = True

在我的模板中,我使用缩略图:

{% thumbnail category.image "20" as im %}
    <img src="{{ im.url }}"></img>
{% empty %}
    {% thumbnail "png/no_image.png" "20" as im %}  # Thumbnail add the rest of the path to media
        <img id="no_image" alt="" src="{{ im.url }}" />
    {% endthumbnail%}
{% endthumbnail %}

有一些物体有图像,有些物体没有它,两者只显示黑色方块而不是图像。

  • 有谁知道为什么会这样?我在许多项目中使用Sorl-Thumbnail,从未遇到过这个问题

我尝试重置完整数据库,我使用python manage.py thumbnail clearpython manage.py thumbnail cleanup

我已安装: libjpeg62 libjpeg62-dev zlib1g-dev

no_image.png是一张图片(红叉) 图片

  • 我错过了任何库或依赖吗?

我输了,因为正如我所说,我在其他项目中使用了Sorl-thumbnail,从未见过这样的事情。

非常感谢任何帮助


修改

以下是我试图展示的一些图片:

enter image description here enter image description here

(我有png和jpg库在Pillow上工作)

这就是我在所有情况下看到的:

enter image description here

EDIT2

问题在于背景。当我上传带有透明背景的png图片时,sorl会将图片转换为jpg并将背景设置为黑色......

  • 有没有办法保持透明背景或避免转换?
  • 可以将背景设置为白色吗?

我尝试过:

THUMBNAIL_COLORSPACE = None
THUMBNAIL_PRESERVE_FORMAT = True

但没有工作

2 个答案:

答案 0 :(得分:10)

终于解决了!

用黑色背景解决问题:

  • 我将 sorl-thumbnail 更新为12.2
  • 在settings.py中添加了这两行:
    • THUMBNAIL_COLORSPACE = None
    • THUMBNAIL_PRESERVE_FORMAT = True

  • 使用python manage.py thumbnail clear_delete_all
  • 重新启动缩略图数据库

答案 1 :(得分:0)

这个版本的sorl-thumbnail中的错误似乎与错误的元数据有关。它目前已在当前在pypi上的候选版本中修复。由于pip默认不安装RC,因此必须指定要安装它的版本。尝试:

pip install sorl-thumbnail==12.1c

我用python徽标试了一下,12.1c

对我来说效果很好