问题描述
我正在尝试开始使用 Django Oscar,但无法正确加载我的图像。上传图像后,我收到此错误 - “无法将模式 RGBA 写入 JPEG”。错误来自第 11 行:
6 {% block product %}
7 <article class="product_pod">
8 {% block product_image %}
9 <div class="image_container">
10 {% with image=product.primary_image %}
11 {% oscar_thumbnail image.original "x155" upscale=False as thumb %} <!-- this line throwing error -->
12 <a href="{{ product.get_absolute_url }}">
13 <img src="{{ thumb.url }}" alt="{{ product.get_title }}" class="thumbnail">
14 </a>
15 {% endwith %}
16 </div>
17 {% endblock %}
这是因为我没有正确安装 libjpeg 吗?我在 Windows 上运行它,但我仍然不清楚我是否正确安装了 libjpeg。如果这是我的问题,那么下载后我到底需要对那个包做什么?
如果我能提供更多有用的信息,请告诉我。
解决方法
我不确定这是否是正确的答案,但是将 django-oscar 缩略图扩展名更改为 Easy Thumbnails 似乎暂时解决了我的问题。希望这可以帮助其他可能遇到问题的人。 Pypi site for easy thumbnails
,django-oscar 使用 sorl-thumbnail 生成缩略图。拇指的默认图像格式是 jpeg。但是 jpeg 不支持透明度,因此如果您的源图像具有与 jpeg 不兼容的颜色模型,您必须放弃 alpha 通道(透明度)或创建与源图像文件类型相同的缩略图。这可以通过在 settings.py
中设置THUMBNAIL_PRESERVE_FORMAT = True
来完成
THUMBNAIL_PRESERVE_FORMAT
默认值:假
如果为 True,将保留输入文件的格式。如果为假, 将使用 THUMBNAIL_FORMAT。
https://sorl-thumbnail.readthedocs.io/en/latest/reference/settings.html#thumbnail-preserve-format