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 buildListe de contrôle diagnostique
Avant d’ouvrir un ticket d’assistance, parcourez cette liste de contrôle:
- Vérifiez l’authenticité du fichier PSD/PSB — a
PsdLoadExceptionune version non prise en charge signifie généralement que ce n’est pas un vrai document PSD/PSB. - 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. - Verify
Opacityest compris entre 0 et 255, pas 0,0-1,0 ou 0-100. - Conservez les valeurs de chaîne en dessous de 255 octets avant d’enregistrer, afin d’éviter
PsdSaveException. - Call
image.Saveaprès chaque modification — modifications d’unLayerl’instance n’est pas conservée tant que le document n’est pas enregistré.