【发布时间】:2021-01-28 08:27:49
【问题描述】:
我正在尝试将 imgkit 图像转换为 PIL 图像以对其进行修改。当我尝试使用文件时,imgkit 成功地将 html 转换为图像。当我使用 BytesIO 并尝试转换为 PIL 图像时,出现错误。
这是我的代码:
img = imgkit.from_string(template.render(a=elements, r=range(len(elements))), False, config=config)
bytesImg = BytesIO(img)
bytesImg.seek(0)
image = Image.open(bytesImg) #error here
PIL.UnidentifiedImageError: 无法识别图像文件 <_io.bytesio object at>
我已经看过this 和this。 我是错误地将 imgkit 图像转换为字节还是有其他错误?
使用 Pillow 8.1 Python 3.9 和 imgkit 1.0.2
【问题讨论】:
-
请问
bytesImg的前20个字节是什么? -
@MarkSetchell 。我使用了 print(bytesImg.read()) 并得到了 b'%PDF-1.4\n1 0 obj\n
-
这看起来像是 PIL 只能写不能读的 PDF pillow.readthedocs.io/en/stable/handbook/… 你能强制 ImgKit 生成 JPEG 吗?
-
是的,它奏效了。我弄乱了配置变量并将其转换为 pdf 而不是图像。
标签: python python-imaging-library imgkit