【发布时间】:2021-04-11 17:57:13
【问题描述】:
我已经建立了一个烧瓶网站,它已经工作了一年多,但是我刚刚遇到了一个在使用烧瓶图像生成调整大小的图像时没有正确调整大小的图像。静态图像加载正确,所以我只能假设烧瓶图像调整大小时出错。我找不到任何方法来查看确切的错误,所以我有点陷入故障排除。任何帮助将不胜感激。
错误: 图片 [image] 包含错误,无法显示。
图片损坏示例:
它适用于其他图像的示例:
静态资源: https://www.eskimotv.net/static/img/cover-images/hellboy-2019-cover-image.jpg
调整代码大小:
<img class="img-responsive webfeedsFeaturedVisual" src="{{ resized_img_src(article.image,width=994,height=466,mode='crop') }}" alt="{{ article.title }} Cover">
编辑:
通过在本地运行服务器并查看错误日志,我能够在 flask-images 尝试生成调整大小图像的缓存版本时识别出以下错误:
web_1 | 172.18.0.1 - - [13/Apr/2021 02:06:54] "GET /imgsizer/img/cover-images/short-cover-image.jpg?h=466&m=crop&v=YHT8vQ&w=994&s=b%27U8Rbw9xy3J63t0mPW3NHN
aNfSCo%27 HTTP/1.1" 500 -
web_1 | Traceback (most recent call last):
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/PIL/JpegImagePlugin.py", line 633, in _save
web_1 | rawmode = RAWMODE[im.mode]
web_1 | KeyError: 'RGBA'
web_1 |
web_1 | The above exception was the direct cause of the following exception:
web_1 |
web_1 | Traceback (most recent call last):
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__
web_1 | return self.wsgi_app(environ, start_response)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app
web_1 | response = self.handle_exception(e)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception
web_1 | reraise(exc_type, exc_value, tb)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
web_1 | raise value
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
web_1 | response = self.full_dispatch_request()
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
web_1 | rv = self.handle_user_exception(e)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
web_1 | reraise(exc_type, exc_value, tb)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
web_1 | raise value
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
web_1 | rv = self.dispatch_request()
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
web_1 | return self.view_functions[rule.endpoint](**req.view_args)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/flask_images/core.py", line 428, in handle_request
web_1 | image.save(cache_file, format, quality=quality)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/PIL/Image.py", line 2172, in save
web_1 | save_handler(self, fp, filename)
web_1 | File "/home/eskimotv/venv/lib/python3.8/site-packages/PIL/JpegImagePlugin.py", line 635, in _save
web_1 | raise OSError(f"cannot write mode {im.mode} as JPEG") from e
web_1 | OSError: cannot write mode RGBA as JPEG
【问题讨论】:
标签: python python-3.x flask