Dépannage Aspose.PSD FOSS for .NET

Dépannage Aspose.PSD FOSS for .NET

Dépannage Aspose.PSD FOSS pour .NET

Cette page couvre les problèmes les plus courants rencontrés lors du chargement, de l’inspection et de l’enregistrement de documents PSD/PSB avec Aspose.PSD FOSS pour .NET.


Problèmes de chargement

PsdLoadException avec un message concernant une version non prise en charge

Le champ de version PSD déclaré du fichier n’est ni la version PSD standard ni la valeur PSB pour documents volumineux. Vérifiez que le document PSD/PSB est authentique et non corrompu avant de le charger :

try
{
    using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}

PsdLoadException concernant une longueur de section dépassant une limite

Les champs de longueur internes du fichier ne correspondent pas à sa taille réelle — cela indique généralement que le fichier est tronqué ou corrompu, et non qu’il utilise une structure non prise en charge mais autrement valide. Réexportez le fichier depuis son application d’origine puis réessayez.


Problèmes d’enregistrement

PsdSaveException concernant une longueur de chaîne Pascal

Une valeur de chaîne — le plus souvent le nom d’un calque ou d’une ressource — dépasse 255octets, le maximum qu’un champ de chaîne Pascal PSD peut encoder :

layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");

Problèmes d’édition

NotSupportedException lors de la définition d’une propriété

Plusieurs propriétés sont en lecture seule dans cette version FOSS. Sur PsdImage : ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Sur Layer : ChannelInformation, LayerMaskData, LayerBlendingRangesData. Considérez-les comme en lecture seule — ne leur attribuez aucune valeur.

L’opacité du calque semble incorrecte après l’avoir définie

Layer.Opacity est un byte compris entre 0 et 255, pas une fraction 0,0-1,0 ou un pourcentage :

layer.Opacity = 200; // approximately 78% opaque, not 200%

La suppression d’une couche n’a aucun effet

PsdImage.Layers possède un setter fonctionnel au niveau de la collection, mais les éléments individuels du tableau ne peuvent pas simplement être supprimés sur place — réassignez tout le tableau filtré:

image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();

Problèmes d’installation

Package introuvable

Confirmez l’identité exacte du package:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

Liste de contrôle diagnostique

Avant d’ouvrir un ticket d’assistance, parcourez cette liste de contrôle:

  1. Vérifiez l’authenticité du fichier PSD/PSB — a PsdLoadException une version non prise en charge signifie généralement que ce n’est pas un vrai document PSD/PSB.
  2. Vérifiez NotSupportedException — vous pourriez définir l’une des 7 propriétés en lecture seule répertoriées ci-dessus au lieu de la lire.
  3. Verify Opacity est compris entre 0 et 255, pas 0,0-1,0 ou 0-100.
  4. Conservez les valeurs de chaîne en dessous de 255 octets avant d’enregistrer, afin d’éviter PsdSaveException.
  5. Call image.Save après chaque modification — modifications d’un Layer l’instance n’est pas conservée tant que le document n’est pas enregistré.

Voir aussi

 Français