故障排除 Aspose.PSD FOSS for .NET
故障排除 Aspose.PSD FOSS for .NET
本页涵盖了使用 Aspose.PSD FOSS for .NET 加载、检查和保存 PSD/PSB 文档时遇到的最常见问题。
加载问题
PsdLoadException 显示不受支持版本的消息
文件声明的 PSD 版本字段既不是标准 PSD,也不是大文档 PSB 值。请在加载之前确认该文件是完整、未损坏的 PSD/PSB 文档:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException 报告节长度超出边界
文件的内部长度字段与实际大小不一致——这通常表示文件被截断或损坏,而不是使用了不受支持但本身有效的结构。请从源应用程序重新导出文件并重试。
保存问题
PsdSaveException 关于 Pascal 字符串长度
字符串值 — 通常是图层或资源名称 — 超过 255 字节,这是 PSD Pascal 字符串字段能够编码的最大长度:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");编辑问题
NotSupportedException 在设置属性时
在此 FOSS 构建中,若干属性为只读。 在 PsdImage:ActiveLayer、ImageResources、GlobalLayerResources、HasTransparencyData。 在 Layer:ChannelInformation、LayerMaskData、LayerBlendingRangesData。 将这些视为仅获取 — 请勿对其赋值。
设置图层不透明度后显示异常
Layer.Opacity 是一个在 0-255 范围内的 byte,而不是 0.0-1.0 的小数或百分比:
layer.Opacity = 200; // approximately 78% opaque, not 200%层删除未生效
PsdImage.Layers 在集合层面有可用的 setter,但单个数组元素不能直接就地删除——请重新赋值整个过滤后的数组:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();安装问题
未找到软件包
确认软件包的确切身份:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build诊断检查清单
在提交支持工单之前,请先检查以下清单:
- 确认文件确实是 PSD/PSB — 一个
PsdLoadException关于不受支持的版本通常意味着文件并非真正的 PSD/PSB 文档。 - 检查
NotSupportedException— 您可能正在设置上述列出的 7 个只读属性之一,而不是读取它。 - Verify
Opacity在 0-255 范围内,而非 0.0-1.0 或 0-100。 - 保持字符串值在 255 字节以下 在保存之前,为避免
PsdSaveException. - Call
image.Save每次编辑后 — 对 a 的更改Layer实例在文档保存之前不会持久化。