Saya ingin menggunakan metode PIL .save() untuk mengekspor daftar gambar PIL saya ke pdf.

Di dokumen PIL, menyimpan bagian katakan: masukkan deskripsi gambar di sini => kita dapat menggunakan opsi append_images untuk format pdf.

Dan di halaman github bantal, masalah ini ucapkan : Menambahkan append_images ke penyimpanan PDF #2526

Saya menulis kode ini:

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:])

Tapi itu tidak berhasil!

Kesalahan ini mengangkat:

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'
10
mkal 15 November 2017, 16:23

3 jawaban

Jawaban Terbaik

Masalah ini diselesaikan di PIL ver 5.0.0 (https://pillow.readthedocs.io/en/ terbaru/).

3
mkal 11 Oktober 2018, 09:11

Coba format ini

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)
0
murty kalyan 16 Agustus 2020, 11:34

Agak di luar topik, tetapi jika Anda memiliki banyak gambar untuk dikonversi, menggunakan pemahaman daftar adalah cara yang tepat.

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)
-1
0x029A 24 Januari 2021, 15:36