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_resources fonctionne pour lister les ressources, mais son setter lève NotSupportedException — les ressources sont en lecture seule dans cette version FOSS.
  • PsdImage.has_icc_profile, is_icc_profile_untagged et global_angle sont des valeurs de placeholder fixes dans cette version FOSS (toujours False, None et 0 respectivement) 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ève NotImplementedError si appelé directement — les ressources sont automatiquement renvoyées lorsqu’on appelle image.save() sur le document entier.

Problèmes courants

ProblèmeCauseCorrection
image.indexed_palette est NoneLe type de données couleur du document n’est pas INDEXED_PALETTESeuls les documents à couleur indexée possèdent une palette
NotSupportedException paramètre image.image_resourcesLe setter n’est pas pris en charge dans cette version FOSSTraitez image_resources comme lecture seule
Ne jamais modifier has_icc_profile / is_icc_profile_untagged / global_angleCes 3 propriétés sont des stubs d’espace réservé codés en dur dans cette version FOSSComparez 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éthodeDescription
PsdImage.image_resourcesBlocs de ressources brutes (PreservedResourceBlock, lecture seule)
PsdImage.resourcesRésumés des ressources (PsdResourceInfo, kind toujours UNKNOWN)
PsdImage.indexed_paletteRésumé de la palette de couleurs indexée, le cas échéant
ImageResourceIdsConstantes d’ID de ressource connues pour la comparaison avec resource_id/id

Voir aussi

 Français