python-3.x - 使用PIL保存模式错误将png转换为pdf

标签 python-3.x python-imaging-library

我正在尝试将png文件转换为pdf文件。 PIL似乎是做到这一点的方法,但是我在运行它时遇到错误(cannot save mode RGBA)

代码:

import os
import PIL
from PIL import Image

path = 'E:\path_to_file'
filename = '15868799_1.png'
fullpath_filename = os.path.join(path, filename)
im = PIL.Image.open(fullpath_filename)
newfilename = '15868799.pdf'
newfilename_fullpath = os.path.join(path, newfilename)
PIL.Image.Image.save(im, newfilename_fullpath, "PDF", resoultion=100.0)

错误:
 File "C:\Python\lib\site-packages\PIL\PdfImagePlugin.py", line 148, in _save
 raise ValueError("cannot save mode %s" % im.mode)
 ValueError: cannot save mode RGBA

最佳答案

您需要先convert your PNG from RGBA to RGB

样例代码:

from PIL import Image

PNG_FILE = 'E:\path_to_file\15868799_1.png'
PDF_FILE = 'E:\path_to_file\15868799.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)

关于python-3.x - 使用PIL保存模式错误将png转换为pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763236/

相关文章:

Python 测验问题

python - 从文件读取时如何摆脱多余的空间

python-3.x - 摄氏度到华氏度在列表中循环

python - Brew 无法链接 jpeg

python - 对各个像素的 RGB 值迭代函数

python - 我如何正确处理多维 numpy 数组

excel - 使用工作表格式忽略 text_wrap 格式

python - 如何制作曼德尔布罗分形缩放的 gif (Python)?

python - 使用 PIL 查找图像中透明区域的位置

python-imaging-library - pip install PIL 未安装到 virtualenv 中