Sections
Sections
已加载的 PsdImage 提供只读的摘要对象,用于 PSD/PSB 文档的结构化章节——包括标题、颜色数据章节、图像数据章节和图像资源章节——全部通过类型化属性访问,无需手动进行字节级解析。
检查 Header 部分
PsdImage.header 返回一个包含文档原始结构字段的 PsdHeader。PsdHeader.version 是原始 PSD 容器版本(PSD 为 1,PSB 为 2)——这与不相关的 PsdImage.version 不同,后者是固定的 API 版本号,而不是文件格式值。
from aspose_psd_foss.psdimage import PsdImage
image = PsdImage.load(input_path)
header = image.header
print(f"Size: {header.width}x{header.height}, channels: {header.channels}")
print(f"Bit depth: {header.bit_depth}, raw container version: {header.version}")
print(f"Is PSB: {header.is_large_document}")检查颜色数据章节
PsdImage.color_data_info 返回一个 PsdColorDataInfo 摘要;kind 是一个 PsdColorDataKind 值(NONE、INDEXED_PALETTE、RGB_PAYLOAD、CMYK_PAYLOAD 或 RAW_PRESERVED)。
if image.has_color_mode_data:
color_info = image.color_data_info
print(f"Color data kind: {color_info.kind}, raw bytes: {color_info.raw_data_length}")检查图像数据章节
PsdImage.image_data_info 返回一个 PsdImageDataInfo 摘要,描述合并像素数据的编码方式;image.compression 通过单独的 CompressionMethod 枚举报告相同的编码。
data_info = image.image_data_info
print(f"Compression: {image.compression}, data kind: {data_info.kind}")
print(f"Uses prediction: {data_info.uses_prediction}")检查图像资源部分
PsdImage.resources, resource_count,并且 has_image_resources 显示图像资源部分的内容。参见 Resources 查看完整资源 API。
print(f"Resource count: {image.resource_count}")提示与最佳实践
PsdHeader及其相关的章节摘要(PsdColorDataInfo、ColorData、PsdImageDataInfo)在此 FOSS 构建中均为只读——它们的属性没有任何公共 setter。- 不要将
PsdHeader.version(真实的 PSD/PSB 容器版本)与PsdImage.version(一个不相关的、固定的 API 版本号,始终为6)混淆。 - 在读取
color_data_info之前检查image.has_color_mode_data——即使文档没有颜色模式数据,也会返回一个摘要对象,但其字段可能没有意义。
常见问题
| 问题 | 原因 | 修复 |
|---|---|---|
header.color_mode 与 image.color_mode 不匹配 | PsdHeader.color_mode 是来自文件的原始整数字段;PsdImage.color_mode 是基于它构建的强类型 ColorModes 枚举 | 对于已键入的值使用 image.color_mode;只有在需要原始整数时才使用 header.color_mode |
color_data_info.indexed_palette 是 None | 文档的颜色数据类型不是 INDEXED_PALETTE | 只有索引颜色文档才包含调色板 — 请先检查 color_data_info.kind |
FAQ
我可以直接修改头部、颜色数据或图像数据部分吗?
不——PsdHeader、PsdColorDataInfo、ColorData和PsdImageDataInfo在此 FOSS 版本中都是只读的摘要对象。
image.compression 与 image.image_data_info.kind 有何区别?
它们通过两个独立的枚举描述相同的底层编码:image.compression 返回一个 CompressionMethod 值,而 image.image_data_info.kind 返回一个 ImageDataKind 值。
API Reference 摘要
| 类/方法 | 描述 |
|---|---|
PsdImage.header | 文档头部摘要(PsdHeader) |
PsdImage.color_data_info / parsed_color_data | 颜色数据部分摘要(PsdColorDataInfo / ColorData) |
PsdImage.image_data_info / image_data_kind / compression | 图像数据部分摘要 |
PsdImage.resources / resource_count / has_image_resources | 图像资源部分摘要 |