添加jpeg时,Python reportlab会生成大文件

2024-10-01 00:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试生成填充了jpeg图像的pdf,但即使我只添加了一个176KB(1142 × 1713)图像,我得到2.5MBpdf。当我在Photoshop中打开这个pdf时,我看到这是画布上相同的jpeg,大小相同。看起来reportlab没有对jpeg或其他内容进行任何压缩。文档中没有关于它的任何信息。 这是我的密码:

...
from reportlab.pdfgen import canvas
from reportlab.lib.utils import ImageReader
from reportlab.lib.units import mm
from PIL import Image

img = Image.open('/Users/dimabogdan/Downloads/3edbc3086ccadcae8c59a702a4e03020.jpg')
# <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1142x1713 at 0x10A74BE48>
img = ImageReader(img)
c = canvas.Canvas('pdf.pdf', pagesize=(320*mm, 470*mm))
c.drawImage(img, x=0, y=0, height=152*mm, width=102*mm)
c.save()
...

我如何解决这个问题


Tags: from图像imageimportimgpilpdflib