Solución de problemas Aspose.PSD FOSS for .NET
Resolución de problemas Aspose.PSD FOSS para .NET
Esta página cubre los problemas más habituales que se encuentran al cargar, inspeccionar y guardar documentos PSD/PSB con Aspose.PSD FOSS para .NET.
Problemas de carga
PsdLoadException con un mensaje sobre una versión no compatible
El campo de versión PSD declarado en el archivo no corresponde ni a la versión estándar PSD ni al valor PSB de documentos extensos. Verifique que el documento PSD/PSB sea auténtico y no esté dañado antes de intentar cargarlo:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException sobre una longitud de sección que supera un límite
Los campos de longitud internos del archivo son inconsistentes con su tamaño real — esto generalmente indica que el archivo está truncado o corrupto, no que emplee una estructura no compatible pero válida. Vuelva a exportar el archivo desde su aplicación de origen y vuelva a intentarlo.
Problemas al guardar
PsdSaveException sobre la longitud de una cadena Pascal
Un valor de cadena — generalmente el nombre de una capa o recurso — supera los 255 bytes, el máximo que puede codificar un campo de cadena Pascal en PSD:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");Problemas al editar
NotSupportedException al establecer una propiedad
Varias propiedades son de solo lectura en esta compilación FOSS. En PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. En Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Trátelas como de solo lectura — no les asignes valores.
La opacidad de la capa parece incorrecta después de ajustarla
Layer.Opacity es un byte en el rango 0-255, no una fracción 0.0-1.0 ni un porcentaje:
layer.Opacity = 200; // approximately 78% opaque, not 200%La eliminación de una capa no tiene efecto
PsdImage.Layers tiene un setter funcional a nivel de colección, pero los elementos individuales del arreglo no pueden simplemente eliminarse en su lugar — reasigna todo el arreglo filtrado:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();Problemas de instalación
Paquete no encontrado
Confirma la identidad exacta del paquete:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildLista de verificación diagnóstica
Antes de abrir un ticket de soporte, revisa esta lista de verificación:
- Confirme que el archivo sea realmente PSD/PSB — a
PsdLoadExceptionsobre una versión no compatible normalmente indica que no es un documento real de PSD/PSB. - Verifique
NotSupportedException— es posible que esté configurando una de las 7 propiedades de solo lectura enumeradas arriba en lugar de leerla. - Verify
Opacityestá en el rango 0-255, no 0.0-1.0 o 0-100. - Mantenga los valores de cadena por debajo de 255 bytes antes de guardar, para evitar
PsdSaveException. - Call
image.Savedespués de cada edición — cambios a unaLayerinstancia no se guardan hasta que el documento se guarde.