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

Pillow调整大小、转换CMYK后保留JPG原图像剪切路径的问题求助

解决方案

Photoshop添加的剪切路径存储在JPG文件的APP13标记对应的8BIM元数据块中,你的原有代码没有迁移这块元数据,且调整图像尺寸后需要同步缩放路径坐标,否则路径会错位,以下是可直接使用的修改后代码:

import os
from PIL import Image

f = [PATH OF THE IMAGE FILE]

# 读取原图
img = Image.open(f)
original_w, original_h = img.size

# 计算缩放比例用于后续路径坐标修正
scale_x = 3000 / original_w
scale_y = 3000 / original_h

file_name = (os.path.splitext(f))[0].upper()
file_ext = '.jpg'

# 保留原ICC配置
icc_profile = img.info.get("icc_profile")

# 提取原图所有APP段元数据,重点保留存储剪切路径的APP13段
app_list = []
for seg, content in img.applist:
    app_list.append((seg, content))

# 处理图像
x_Img = img.resize([3000, 3000]).convert("CMYK")
out_file = f'{file_name}{file_ext}'

# 保存时传入app参数迁移元数据
x_Img.save(
    out_file,
    dpi=(300, 300),
    icc_profile=icc_profile,
    app=app_list
)

补充说明

  • 如果你的resize操作是非等比例的,保存后发现剪切路径错位,需要手动解析APP13中的8BIM路径数据,将所有路径锚点的x坐标乘以scale_x、y坐标乘以scale_y,再把修改后的路径数据重新写入APP13段即可。
  • 直接迁移全部APP段的操作也可以保留原图其他Photoshop私有元数据,不需要的话可以仅过滤保留APP13段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:30:01