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

Python实现无压缩合并PPM图片为PDF并保留色彩信息

保留PPM图片色彩的PDF合并方案

问题背景

我需要将若干PPM格式图片合并为PDF,选择PPM格式是为了保留色彩信息——因为JPG会通过平均部分区域色彩实现压缩。但使用Python的Pillow库将其转换为PDF时,默认采用JPG转换导致部分区域色彩丢失,请问该如何操作才能保留完整色彩?

问题核心

Pillow保存PDF时默认使用JPEG有损压缩编码,这会破坏PPM原本的完整色彩信息,和你选择PPM格式的初衷冲突。

解决方法

在调用save方法时,指定图片的嵌入格式为PNG(无损压缩,可完整保留色彩细节),通过format='PNG'参数实现。

修改后的代码

from PIL import Image
import os
import sys

x = sys.argv[1]
dir_path = "folder_directory"
image_list = []

# 处理第一张图片作为PDF起始页
first_image_path = os.path.join(dir_path, os.listdir(dir_path)[0])
im_1 = Image.open(first_image_path).convert('RGB')

# 遍历剩余图片
for idx, image_name in enumerate(os.listdir(dir_path)):
    if idx == 0:
        continue
    print(image_name)
    image_path = os.path.join(dir_path, image_name)
    im = Image.open(image_path).convert('RGB')
    image_list.append(im)

# 保存PDF时指定PNG无损格式
im_1.save(f'saving_dir{x}.pdf', save_all=True, append_images=image_list, format='PNG')

额外优化说明

  • 用os.path.join拼接路径,避免不同系统下路径分隔符的兼容性问题
  • 调整变量名提升可读性,逻辑更清晰
  • 用enumerate替代手动计数器,代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:21:32