Solución de problemas Aspose.PSD FOSS for .NET

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 build

Lista de verificación diagnóstica

Antes de abrir un ticket de soporte, revisa esta lista de verificación:

  1. Confirme que el archivo sea realmente PSD/PSB — a PsdLoadException sobre una versión no compatible normalmente indica que no es un documento real de PSD/PSB.
  2. Verifique NotSupportedException — es posible que esté configurando una de las 7 propiedades de solo lectura enumeradas arriba en lugar de leerla.
  3. Verify Opacity está en el rango 0-255, no 0.0-1.0 o 0-100.
  4. Mantenga los valores de cadena por debajo de 255 bytes antes de guardar, para evitar PsdSaveException.
  5. Call image.Save después de cada edición — cambios a una Layer instancia no se guardan hasta que el documento se guarde.

Ver también

 Español