Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sorl缩略图生成黑色正方形而不是图像_Python_Django_Sorl Thumbnail - Fatal编程技术网

Python Sorl缩略图生成黑色正方形而不是图像

Python Sorl缩略图生成黑色正方形而不是图像,python,django,sorl-thumbnail,Python,Django,Sorl Thumbnail,我在一个流浪的虚拟机中开发我的项目,我使用的软件版本是: Ubuntu 12.04 Django 1.6 Sorl缩略图11.12 枕头2.5.3 我在路径/var/www/django/my_project/media/icons中有一些图片,我有一个带有指向该路径的图像字段的模型 我的settings.py中还有缩略图\u DEBUG=True 在我的模板中,我使用缩略图,如: {% thumbnail category.image "20" as im %}

我在一个流浪的虚拟机中开发我的项目,我使用的软件版本是:

  • Ubuntu 12.04
  • Django 1.6
  • Sorl缩略图11.12
  • 枕头2.5.3
我在路径
/var/www/django/my_project/media/icons
中有一些图片,我有一个带有指向该路径的图像字段的模型

我的settings.py中还有
缩略图\u 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缩略图版本中的一个错误,与坏的元数据有关。它目前已在pypi上的候选版本中修复。由于pip默认情况下不安装RC,因此必须指定安装它的版本。尝试:

pip install sorl-thumbnail==12.1c
我用python徽标试用了一下,12.1c终于解决了

要解决黑色背景下的问题,请执行以下操作:

  • 我将sorl缩略图更新为
    12.2
  • 将这两行添加到settings.py:
    • THUMBNAIL\u COLORSPACE=None
    • THUMBNAIL\u PRESERVE\u FORMAT=True


  • 使用
    python manage.py缩略图清除\u删除\u全部重新启动缩略图数据库

当你说“黑色正方形”时,这是不是
no\u image.png
?当您查看在
src
中为图像生成的实际路径时,它是否指向sorl缩略图缓存路径(类似于
/media/cache/ab/fa/abf…e08.jpg
)也就是说,sorl真的在创建缩略图吗?@TimmyO'Mahony图像no_image.png是一个绿色的圆圈,sor缩略图在
/media/cache/ab/…
中生成图像,但这些图像只是黑色的正方形,图像上的内容无关紧要,sorl缩略图生成黑色图片您是否检查了
Pillow
是否安装了
png
支持,
ZLIB(png/ZIP)支持是否可用
,因为当我使用ubuntu时,
zlib1g dev
和其他文件的路径有问题,所以我解决了sudo ln-s/usr/lib/x86_64-linux-gnu/libz.so/usr/lib和其他lib的问题,然后
pip安装-U Pillow
@madzohan我想你说的问题是针对x64机器,我的机器是32台,不管怎样,我检查了Pillow的安装,它说的是
ZLIB(PNG/ZIP)可用的支持
您是否有尝试制作缩略图的图像示例及其结果?您是否设置了其他与sorl缩略图相关的设置?谢谢您的回答,我会尽快检查!这很奇怪,因为实际上我有几乎相同的环境:
Django 1.6.7,Sorl Thumbnail 11.12,Pillow 2.5.3
,除了
Ubuntu
,我在
OSX
上,一切都很顺利。很可能你的系统中安装了PIL或Pillow(不是在virtualenv中)。您可以尝试使用--no site packages选项重新创建虚拟环境,然后安装Pillow。在此之后,我仍然面临问题(
OSError:cannot write mode P as JPEG
),我最终使用了这些设置(因为我不太关心图像压缩)
THUMBNAIL\u PRESERVE\u FORMAT=True THUMBNAIL\u FORMAT='PNG'
。未更改
缩略图\u颜色空间设置(默认为
'RGB'
)。
pip install sorl-thumbnail==12.1c