繁体   English   中英

如何使用 PIL(枕头)以 PDF 格式保存图像列表?

[英]How to save an image list in PDF using PIL (pillow)?

我想使用 PIL .save()方法将我的 PIL 图像列表导出为 pdf。

PIL 文档中,保存部分说:在此处输入图片说明 => 我们可以对 pdf 格式使用append_images选项。

在枕头的 github 页面中,这个问题说:将append_images 添加到 PDF 保存 #2526

我写了这段代码:

import PIL
im1 = PIL.Image.open("1.jpg").convert("RGB")
im2 = PIL.Image.open("2.jpg").convert("RGB")
im3 = PIL.Image.open("3.jpg").convert("RGB")
images = [im1,im2,im3]
images[0].save("out.pdf", save_all=True, append_images=images[1:])

但它不起作用!

这些错误引发:

Traceback (most recent call last):
  File "sample.py", line 13, in <module>
gif.save("out.pdf", save_all=True, append_images=images)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/Image.py", line 1928, in save
save_handler(self, fp, filename)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/PdfImagePlugin.py", line 55, in _save_all
_save(im, fp, filename, save_all=True)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/PdfImagePlugin.py", line 182, in _save
Image.SAVE["JPEG"](im, op, filename)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PIL/JpegImagePlugin.py", line 609, in _save
info = im.encoderinfo
AttributeError: 'Image' object has no attribute 'encoderinfo'

这个问题在 PIL ver 5.0.0 ( https://pillow.readthedocs.io/en/latest/ ) 中得到解决。

试试这个格式

from PIL import Image
im1 = PIL.Image.open("1.jpg").convert("RGB")
im2 = PIL.Image.open("2.jpg").convert("RGB")
im3 = PIL.Image.open("3.jpg").convert("RGB")
images = [im2,im3]
im1.save("out.pdf", save_all=True, append_images=images)

有点偏离主题,但如果您有大量图像要转换,则使用列表理解是可行的方法。

from PIL import Image

im1=Image.open('1.png').convert('RGB')
images = [Image.open(str(imgNumber)+'.png').convert('RGB') for imgNumber in range(2,100)]
im1.save("imgBook.PDF", save_all=True, append_images=images)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM