You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python PIL将TIFF转PDF时的文件大小与质量问题

TIFF转PDF文件大小与质量失控问题(使用Python PIL)

我用Python PIL的Image模块将TIFF文件转换为PDF,但无法控制转换后的文件大小与质量变化,代码改编自Stack Overflow相关讨论(Python 3.x):

import os
from PIL import Image, ImageSequence

def tiff_to_pdf(tiff_path):
    pdf_path = tiff_path + '.pdf'
    if not os.path.exists(tiff_path): 
        raise Exception(f'{tiff_path} does not find.')
    image = Image.open(tiff_path)

    images = []
    for i, page in enumerate(ImageSequence.Iterator(image)):
        page = page.convert("RGB")
        images.append(page)
    if len(images) == 1:
        images[0].save(pdf_path, quality = 85, optimize=True)
    else:
        images[0].save(pdf_path, quality = 85, optimize=True, save_all=True, append_images=images[1:])

    os.remove(tiff_path)
    os.rename(pdf_path, tiff_path)

测试照片类TIFF(约2MB)时,文件大小缩减90%且质量损失极小,无问题;但处理客户的扫描文档类TIFF(约45KB,含大量手写内容)时,文件大小剧增1200%,还出现质量轻微损失(字母边缘原本纯白处出现浅灰像素)。

我已尝试调整save参数:

  • resolution参数无任何影响;
  • 将quality从默认75调至85,质量略有改善;
  • 设置optimize=True对文件大小有轻微帮助。
    即使将quality降至5,文件大小仍增至原大小的300%且质量极差。

客户现有355GB的TIFF文件,转换后预计会增加约4TB,这种文件大小增长完全无法接受。我希望找到PIL中未注意到的设置,以保持转换后文件的大小与质量和原文件一致。由于PIL模块已部署在所有客户系统中,优先使用该模块,非必要不想新增其他模块。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:30:42