故障排除 Aspose.PSD FOSS for Python
故障排除 Aspose.PSD FOSS for Python
本页涵盖了使用 Aspose.PSD FOSS for Python 加载、检查和保存 PSD/PSB 文档时最常遇到的问题。
加载问题
PsdLoadException 出现关于不受支持版本的消息
文件声明的 PSD 版本字段既不是标准 PSD,也不是大文档 PSB 值。加载前请确认该文件是一个真实且未损坏的 PSD/PSB 文档:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException 关于段长度超出边界的提示
文件的内部长度字段与实际大小不一致——这通常意味着文件被截断或已损坏,而不是使用了不受支持但其他方面有效的结构。请从源应用程序重新导出文件并重试。
保存问题
PsdSaveException 关于 Pascal 字符串长度
字符串值 —— 通常是图层或资源名称 —— 超过 255 字节,这是 PSD Pascal 字符串字段能够编码的最大长度:
layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")编辑问题
NotSupportedException 在设置属性时
在此 FOSS 构建中,多个属性为只读。在 PsdImage 上:active_layer、image_resources、global_layer_resources、has_transparency_data。在 Layer 上:channel_information、layer_mask_data、layer_blending_ranges_data。将这些视为仅获取——不要对其赋值。
设置后图层不透明度看起来不正确
Layer.opacity 通常是 0-255 的取值,而不是 0.0-1.0 的小数或百分比:
layer.opacity = 200 # approximately 78% opaque, not 200%层删除未生效
PsdImage.layers 在集合层面有可用的 setter,但不能直接在原位删除单个列表元素——请重新分配整个过滤后的列表:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]安装问题
未找到软件包
确认软件包的精确标识:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH诊断检查清单
在提交支持工单之前,请先完成以下检查清单:
- 确认文件确实是 PSD/PSB — a
PsdLoadException关于不受支持的版本通常意味着该文件不是一个真实的 PSD/PSB 文档。 - 检查
NotSupportedException— 您可能正在设置上面列出的 7 个只读属性之一,而不是读取它。 - Verify
opacity在 0-255 范围内,而不是 0.0-1.0 或 0-100。 - 保持字符串值在 255 字节以下 保存前,以避免
PsdSaveException. - Call
image.save每次编辑后 — 对…的更改Layer实例在文档保存之前不会被持久化。