Dépannage Aspose.PSD FOSS for Python
Résolution des problèmes Aspose.PSD FOSS pour Python
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 Python.
Problèmes de chargement
PsdLoadException avec un message indiquant 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. Assurez-vous que le document PSD/PSB est authentique et non corrompu avant de le charger:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException signalant une longueur de section dépassant une limite
Les champs de longueur internes du document ne correspondent pas à sa taille réelle — cela indique généralement que le document est tronqué ou corrompu, et non qu’il utilise une structure non prise en charge mais sinon valide. Réexportez le document depuis son application d’origine et réessayez.
Problèmes d’enregistrement
PsdSaveException concernant la longueur d’une 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[:255] if len(layer.name) > 255 else 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: active_layer, image_resources, global_layer_resources, has_transparency_data. Sur Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Considérez-les comme uniquement récupérables — ne leur affectez rien.
L’opacité du calque semble incorrecte après l’avoir définie
Layer.opacity est conventionnellement une valeur de 0 à 255, et non 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 de la liste ne peuvent pas simplement être supprimés sur place — réattribuez la liste filtrée entière:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]Problèmes d’installation
Package introuvable
Confirmez l’identité exacte du package:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHListe de contrôle diagnostique
Avant d’ouvrir un ticket de support, parcourez cette liste de contrôle:
- Confirmez que le fichier est réellement PSD/PSB — a
PsdLoadExceptionUne version non prise en charge signifie généralement que le fichier n’est pas un vrai document PSD/PSB. - Vérifiez la présence de
NotSupportedException— vous pourriez définir l’une des 7 propriétés en lecture seule listées ci-dessus au lieu de la lire. - Verify
opacityest dans la plage 0-255, pas 0,0-1,0 ou 0-100. - Conservez les valeurs de chaîne en dessous de 255 octets avant d’enregistrer, pour éviter
PsdSaveException. - Call
image.saveaprès chaque modification — modifications d’unLayerl’instance n’est pas persistée tant que le document n’est pas enregistré.