Resources
Resources
Un PsdImage chargé expose ses blocs de ressources d’image — des entrées de type métadonnées telles que des grilles, des repères et des charges utiles de profil ICC — via deux vues en lecture seule, ainsi qu’un résumé séparé pour les palettes de couleurs indexées.
Liste des blocs de ressources
PsdImage.image_resources renvoie un(e) PreservedResourceBlock par ressource, avec l’ID brut de la ressource, le nom et la taille en octets :
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.resources.imageresourceids import ImageResourceIds
image = PsdImage.load(input_path)
for block in image.image_resources:
print(f"ID: {block.id}, name: {block.name!r}, size: {block.size} bytes")PsdImage.resources renvoie plutôt un résumé PsdResourceInfo séparé par ressource, ajoutant une classification kind — dans cette version FOSS, kind est toujours PsdResourceKind.UNKNOWN, puisque le parseur de ressources de cette version ne décodifie pas les ID de ressources spécifiques en propriétés sémantiques.
Reconnaissance des ID de ressources connus
Comme kind n’est pas résolu sémantiquement, reconnaissez une ressource spécifique en comparant block.id aux constantes dans ImageResourceIds :
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")Lecture d’une palette de couleurs indexée
Si les données couleur du document sont basées sur une palette, PsdImage.indexed_palette renvoie ses entrées:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")Conseils et bonnes pratiques
- Le getter de
PsdImage.image_resourcesfonctionne pour lister les ressources, mais son setter lèveNotSupportedException— les ressources sont en lecture seule dans cette version FOSS. PsdImage.has_icc_profile,is_icc_profile_untaggedetglobal_anglesont des valeurs de placeholder fixes dans cette version FOSS (toujoursFalse,Noneet0respectivement) quel que soit le contenu réel du document chargé — utilisez le schéma de comparaison d’ID de ressource ci-dessus si vous devez détecter ces ressources vous-même.PreservedResourceBlock.save()lèveNotImplementedErrorsi appelé directement — les ressources sont automatiquement renvoyées lorsqu’on appelleimage.save()sur le document entier.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
image.indexed_palette est None | Le type de données couleur du document n’est pas INDEXED_PALETTE | Seuls les documents à couleur indexée possèdent une palette |
NotSupportedException paramètre image.image_resources | Le setter n’est pas pris en charge dans cette version FOSS | Traitez image_resources comme lecture seule |
Ne jamais modifier has_icc_profile / is_icc_profile_untagged / global_angle | Ces 3 propriétés sont des stubs d’espace réservé codés en dur dans cette version FOSS | Comparez block.id à ImageResourceIds à la place (voir ci-dessus) |
FAQ
Quelle est la différence entre image_resources et resources ?
Les deux répertorient les mêmes blocs de ressources sous-jacents, mais sous différents types d’objets: image_resources renvoie des objets PreservedResourceBlock (ID/nom/taille bruts, utilisés pour le round-tripping), tandis que resources renvoie des résumés PsdResourceInfo (ajoute une classification kind, actuellement toujours UNKNOWN).
Puis-je modifier ou supprimer une ressource image?
Non — le setter de image_resources déclenche NotSupportedException, et PreservedResourceBlock.save() déclenche NotImplementedError s’il est appelé directement. Les ressources sont en lecture seule dans cette version FOSS.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
PsdImage.image_resources | Blocs de ressources brutes (PreservedResourceBlock, lecture seule) |
PsdImage.resources | Résumés des ressources (PsdResourceInfo, kind toujours UNKNOWN) |
PsdImage.indexed_palette | Résumé de la palette de couleurs indexée, le cas échéant |
ImageResourceIds | Constantes d’ID de ressource connues pour la comparaison avec resource_id/id |