2 回答

TA贡献1789条经验 获得超8个赞
您需要先将 PNG 从 RGBA 转换为 RGB。Png 有一个额外的 alpha 通道,因此是 RGBA。RGBA 是 32 位的,而 RGB 是 24 位的。正如这里提到的
示例代码:
from PIL import Image
PNG_FILE = 'a.png'
PDF_FILE = 'b.pdf'
rgba = Image.open(PNG_FILE)
rgb = Image.new('RGB', rgba.size, (255, 255, 255)) # white background
rgb.paste(rgba, mask=rgba.split()[3]) # paste using alpha channel as mask
rgb.save(PDF_FILE, 'PDF', resoultion=100.0)

TA贡献1806条经验 获得超8个赞
您需要先将 PNG 从 RGBA 转换为 RGB,如下所示:
from PIL import Image
PNG_FILE = 'image.png'
PDF_FILE = 'doc.pdf'
rgba = Image.open(PNG_FILE)
rgb = Image.new('RGB', rgba.size, (255, 255, 255)) # white background
rgb.paste(rgba, mask=rgba.split()[3]) # paste using alpha channel as mask
rgb.save(PDF_FILE, 'PDF', resoultion=100.0)
添加回答
举报