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