我正在尝试使用python-docx将图像添加到word文档中。我正在使用python3。并且该二进制被存储在BLOB列中。我可以在Sequel Pro中查看图像,所以它看起来不是db错误。
我已经使用UPDATE games SET data = LOAD_FILE('~/pictures/image.gif') WHERE id = 1将gif和png添加到数据库中
我正在迭代一堆行。我也尝试过使用bin()函数。然后我得到了一些关于尝试IO包的建议。
import io
document.add_picture(io.BytesIO(item["data"]))item["data"]是镜像二进制文件。
不幸的是,这抛出了一个错误:
File "/usr/local/lib/python3.7/site-packages/docx/image/image.py", line 199, in _ImageHeaderFactory
raise UnrecognizedImageError
docx.image.exceptions.UnrecognizedImageError预期的结果是我可以使用python-docx将图像添加到Word中。我在图像文件上遇到了这个问题,并在使用ImageMagic转换图像时让事情变得正常。$ convert image.png image.png。所以一种选择可能是保存一个临时文件并转换它?但这似乎是不必要的麻烦。
发布于 2019-08-24 01:47:15
所有这些错误都意味着python-docx无法识别图像二进制文件上的头文件。ImageMagick对于它将识别的内容更加复杂,并且能够识别出类型。请注意,它确实在写入时以不同的方式保存了该标头,以使python-docx能够很好地提取更传统的形式。
大多数图像导入都没有问题,但是图像头部有很大的可变性,即使是像PNG这样的东西。
在任何情况下,您的图像都与传统的标题布局相差很远,以至于无法识别,在将它们添加到文档之前,您需要对它们进行预处理。
https://stackoverflow.com/questions/57620169
复制相似问题