【问题标题】:python: reportlab, how to remove black borders from imagepython:reportlab,如何从图像中删除黑色边框
【发布时间】:2011-03-20 18:36:58
【问题描述】:

我正在尝试使用 python reportlab 生成一个 pdf 文件,但似乎图像在 pdf 中显示为带有奇怪的黑色边框。

代码如下:

# Standalone script to generate pdf lessons

from reportlab.pdfgen import canvas
def hello(c):
    c.drawImage("./media/files/1.png", 0, 600, 350, 350)


c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()

我要添加的图片在这里

谁能告诉我为什么左边的黑线出现了,以及如何解决?

【问题讨论】:

  • 什么黑线?你能把PDF的截图也发一下吗?

标签: python reportlab


【解决方案1】:

问题不在于边框,而是您的棋盘在右侧和底部有透明像素,reportlab 无法识别 alpha 通道并将透明部分绘制为黑色:

使用 mask='auto' 告诉 drawImage 在你的 PNG 中使用 alpha 通道,因此背景显示出来:

c.drawImage("./media/files/1.png", 0, 600, 350, 350, mask='auto')

【讨论】: