Dépannage Aspose.PSD FOSS for Python

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:$PYTHONPATH

Liste de contrôle diagnostique

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

  1. Confirmez que le fichier est réellement PSD/PSB — a PsdLoadException Une version non prise en charge signifie généralement que le fichier n’est pas un vrai document PSD/PSB.
  2. 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.
  3. Verify opacity est dans la plage 0-255, pas 0,0-1,0 ou 0-100.
  4. Conservez les valeurs de chaîne en dessous de 255 octets avant d’enregistrer, pour éviter PsdSaveException.
  5. Call image.save après chaque modification — modifications d’un Layer l’instance n’est pas persistée tant que le document n’est pas enregistré.

Voir aussi

 Français