Noyau API
API principale
PsdImage est le point d’entrée pour charger, inspecter et enregistrer les documents PSD/PSB. Il étend la classe de base abstraite Image, qui ne déclare que load() — le reste de la surface du document (width, height, save(), prise en charge du gestionnaire de contexte) est défini sur PsdImage lui-même, et non hérité.
Chargement et enregistrement des documents
Image.load() accepte un chemin de fichier ou un flux et renvoie un Image; pour une entrée PSD/PSB, il s’agit toujours d’un PsdImage, de sorte que la surface du document est immédiatement disponible sans conversion explicite. PsdImage prend également en charge l’instruction with pour le nettoyage automatique, et PsdImage.save() écrit le document de nouveau vers un chemin de fichier ou un flux.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Propriétés d’en-tête du document
PsdImage expose l’en-tête analysé sous forme de propriétés typées: width, height, bits_per_channel, color_mode, version, compression, size et is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Ressources d’image
PsdImage.image_resources renvoie la liste analysée d’objets ResourceBlock. Dans cette version FOSS, image_resources, global_layer_resources, active_layer et has_transparency_data peuvent être lus mais pas réassignés — leurs mutateurs lèvent NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Conseils et meilleures pratiques
Image.load()renvoie déjà unPsdImagepour une entrée PSD/PSB — aucun cast n’est nécessaire, contrairement à certains autres ports de langage de cette bibliothèque.- Utilisez l’instruction
with;PsdImageprend en charge le protocole de gestionnaire de contexte pour le nettoyage. - Considérez
image_resources,global_layer_resources,active_layerethas_transparency_datacomme en lecture seule même s’ils exposent un setter. - Vérifiez
image.layer_countavant d’indexerimage.layers— un document aplati peut ne contenir aucune couche.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
NotSupportedException lors de la définition de image_resources | Cette propriété est en lecture seule dans la version FOSS malgré la présence d’un setter | Lisez la valeur ; n’essayez pas de la réassigner |
Liste image.layers vide sur un document aplati | is_flatten est True et le document n’a aucune couche analysée | Vérifiez image.layer_count (ou image.is_flatten) avant d’indexer dans image.layers |
FAQ
Le chargement d’un document PSD décode-t-il les données de pixels?
Non. PsdImage.load() analyse l’en-tête du document, les métadonnées des calques et les ressources sans décoder ni rendre les données de pixels.
Puis-je convertir un fichier PSD en un autre format d’image?
Non. Cette bibliothèque charge, examine et enregistre uniquement les documents PSD/PSB — elle ne rend pas les données de pixels ni ne convertit vers d’autres formats d’image.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Image.load(path) / Image.load(stream) | Charge un document PSD ou PSB |
PsdImage.save(path) / PsdImage.save(stream) | Enregistre le document |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Propriétés d’en-tête du document |
PsdImage.image_resources | Blocs de ressources d’image analysés (lecture seule) |