Python: reportlab,如何去除图像的黑边

0 投票
1 回答
2420 浏览
提问于 2025-04-16 14:04

我正在尝试使用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()

我想添加的图片在这里在这里输入图片描述

有人能告诉我为什么左边会出现黑线吗?还有怎么解决这个问题?

1 个回答

3

问题不在于边框,而是你的棋盘在右边和底部有透明的像素。reportlab没有识别出透明通道,把透明的部分涂成了黑色:

enter image description here

使用 mask='auto' 可以告诉drawImage使用你PNG图片中的透明通道,这样背景就能透过棋盘显示出来:

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

撰写回答