PsdImage etLayer, offrant aux développeurs Python un accès programmatique à la structure d’un document PSD sansPsdImage.layers : chaque Layer indique son nom,BlendMode), ainsi que les informations de canal de bas niveau (ChannelInformation) et les données de masque (LayerMaskData). Un sous-ensemble desleft/top/right/bottom) et mode de fusion — peut êtrePsdImage.save() ; tout le reste est en lecture seule par conception dans cette version FOSS. Aspose.PSD FOSS for Python est sous licence MIT. Installez-le avecpip install aspose-psd-foss — la bibliothèque n’a aucune dépendance native tierce, uniquement la bibliothèque standard Python. Pour la gamme de produits d’entreprise, voir Aspose.PSD — Enterprise Product Family.Image.load(file_path) ouvre un fichier et renvoie une instance PsdImagePsdImage.width, height et channels_count indiquent les dimensions du canevas et le nombre de canauxPsdImage.layers renvoie la liste complète des objets Layer dans l’ordre du documentPsdImage.layers renvoie chaque Layer dans l’ordre du document ; chaque Layer expose name, bounds, opacity, is_visible et blend_mode_keyLayer.channel_information expose les métadonnées de canal pour une inspection plus approfondieLayer.channels_count indique le nombre de canaux d’image qu’un calque possèdePsdImage.layers lui-même peut être réassigné pour supprimer ou réorganiser les calquesLayer.name, Layer.left/top/right/bottom, et Layer.blend_mode_key peuvent être définis directementPsdImage.save(file_path) persiste le document modifié sur le disquePsdImage.load confirme que les modifications sont correctement effectuées en aller-retourNotSupportedException si elles sont définies — cette version ne prend en charge que les modifications de métadonnées, pas la réécriture complèteLayer.channel_information expose les collections de métadonnées par canalLayer.has_mask_data et has_blending_ranges_data indiquent si des sections optionnelles sont présentesPsdLoadException et PsdSaveException affichent les erreurs de chargement/enregistrement avec des messages clairsChargez un fichier avec Image.load pour obtenir une instance PsdImage pour les membres spécifiques au PSD.
from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")
Les limites du calque et le mode de fusion peuvent être modifiés sur place et enregistrés sur le disque.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("test.psd") as image:
image.layers[0].left = 10
image.layers[0].top = 20
image.layers[0].right = 40
image.layers[0].bottom = 60
image.layers[0].blend_mode_key = BlendMode.MULTIPLY
image.save("edited.psd")
with PsdImage.load("edited.psd") as reloaded:
print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")
Les informations de canal peuvent être lues mais pas réaffectées — tenter de les définir provoque NotSupportedException.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
layer = image.layers[0]
channel_information = layer.channel_information
print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
# layer.channel_information = channel_information # raises NotSupportedException
Aspose.PSD FOSS for Python est sous licence MIT. Vous pouvez l’utiliser, le modifier et le redistribuer selon les termes de la licence MIT, y compris dans des produits commerciaux.
Voir la section d’installation ci-dessus pour la commande d’installation actuelle.
Il charge et enregistre les fichiers PSD et PSB (Photoshop large document). Il ne rend pas et n’exporte pas les données de pixels vers d’autres formats raster tels que PNG ou JPEG.
PsdImage (une sous-classe de Image). Chargez un document avec PsdImage.load, puis lisez sa collection layers et les propriétés d’en-tête.
Oui — Layer expose un setter fonctionnel pour plusieurs propriétés, telles que la visibilité et le nom, et PsdImage.layers lui-même possède un setter fonctionnel pour remplacer la collection. Quelques propriétés spécifiques (informations de canal, données de masque, plages de fusion et certaines ressources au niveau du document) sont en lecture-seule dans cette version FOSS et lèvent NotSupportedException si elles sont définies.