为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 转换和合并图像和 PDF

使用 Python 转换和合并图像和 PDF

30秒到达战场 2023-04-25 16:23:14
所以,我正在尝试仅使用 Python 组合多个文件(PDF 和图像)。到目前为止设法处理 PDF 和“JPG”图像。但是,每次我尝试使用 PIL 将“PNG”图像转换为 PDF 时,都会弹出一个错误提示“ValueError:无法保存模式 RGBA”。我知道 PIL 可以将“RGBA”转换为“RGB”,但由于某些原因,下面的代码无法正常工作。任何想法为什么?PS:一周前开始学习Python,如果对你来说很明显,请客气。
查看完整描述

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)



查看完整回答
反对 回复 2023-04-25
?
慕森卡

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)


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信