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

所以,我正在尝试仅使用 Python 组合多个文件(PDF 和图像)。到目前为止设法处理 PDF 和“JPG”图像。但是,每次我尝试使用 PIL 将“PNG”图像转换为 PDF 时,都会弹出一个错误提示“ValueError:无法保存模式 RGBA”。

我知道 PIL 可以将“RGBA”转换为“RGB”,但由于某些原因,下面的代码无法正常工作。

任何想法为什么?

PS:一周前开始学习Python,如果对你来说很明显,请客气。


30秒到达战场
浏览 139回答 2
2回答

拉丁的传说

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

慕森卡

您需要先将 PNG 从 RGBA 转换为 RGB,如下所示:from PIL import ImagePNG_FILE = 'image.png'PDF_FILE = 'doc.pdf'rgba = Image.open(PNG_FILE)rgb = Image.new('RGB', rgba.size, (255, 255, 255))  # white backgroundrgb.paste(rgba, mask=rgba.split()[3])               # paste using alpha channel as maskrgb.save(PDF_FILE, 'PDF', resoultion=100.0)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python