python - 当使用带有 reportlab drawImage 的 PIL 图像对象时

标签 python python-imaging-library reportlab

我正在尝试使用 reportlab drawImage 方法将 PIL 图像对象插入到 pdf 中。

 im=Image.open('back_ground.png')
 side_im=im.crop((2,2,277,819))
 c=canvas.Canvas('report.pdf')
 c.drawImage(side_im,200,700)

我得到了这个错误

AttributeError: 'Image' object has no attribute 'rfind'

最佳答案

仅用于更新,因为 StringIO 在 Python3 中已被弃用。导入 io 而不是 StringIO 并使用 io.BytesIO()

import io
from reportlab.lib.utils import ImageReader

im=Image.open('back_ground.png')
side_im=im.crop((2,2,277,819))
c=canvas.Canvas('report.pdf')

#c.drawImage(side_im,200,700)
side_im_data = io.BytesIO()
side_im.save(side_im_data, format='png')
side_im_data.seek(0)
side_out = ImageReader(side_im_data)
c.drawImage(side_out,200,700)

关于python - 当使用带有 reportlab drawImage 的 PIL 图像对象时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47782377/

相关文章:

python-3.x - python 枕头 :Load Image with data

python - 如何使用 PIL 在半透明背景上创建重叠的半透明形状

python - 使用 TKinter 在对象内部定义的图像按钮

python - 了解 Python ReportLab 中的表格坐标系

python - 一个段落中的 Reportlab 粗体和普通文本

python - Reportlab:对齐,vAlign 表与帧的 'BOTTOM'

字符串解析的python列表

python - 扭曲:正确捕获键盘中断和关闭

用于属性的 Python mock.patch.object

python - Django:如何将用户提交的文件直接上传到另一台服务器?