Resources

Resources

Un PsdImage caricato espone i suoi blocchi di risorse immagine — voci in stile metadati come griglie, guide e payload di profili ICC — tramite due visualizzazioni di sola lettura, più un riepilogo separato per le palette di colori indicizzate.


Elenco dei blocchi di risorse

PsdImage.image_resources restituisce un PreservedResourceBlock per risorsa, con l’ID risorsa grezzo, il nome e la dimensione in byte:

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 restituisce invece un riepilogo PsdResourceInfo separato per risorsa, aggiungendo una classificazione kind — in questa build FOSS kind è sempre PsdResourceKind.UNKNOWN, poiché il parser delle risorse di questa build non decodifica ID risorsa specifici in proprietà semantiche.


Riconoscimento degli ID risorsa noti

Poiché kind non è risolto semanticamente, riconosci una risorsa specifica confrontando block.id con le costanti in ImageResourceIds:

for block in image.image_resources:
    if block.id == ImageResourceIds.ICC_PROFILE:
        print(f"Found an ICC profile resource ({block.data_size} bytes)")

Lettura di una tavolozza di colori indicizzata

Se i dati di colore del documento sono basati su tavolozza, PsdImage.indexed_palette restituisce le sue voci:

palette = image.indexed_palette

if palette is not None:
    print(f"Palette entries: {len(palette.entries)}")

Consigli e migliori pratiche

  • Il getter di PsdImage.image_resources funziona per elencare le risorse, ma il suo setter solleva NotSupportedException — le risorse sono di sola lettura in questa build FOSS.
  • PsdImage.has_icc_profile, is_icc_profile_untagged e global_angle sono valori segnaposto fissi in questa build FOSS (sempre False, None e 0 rispettivamente) indipendentemente dal contenuto reale del documento caricato — utilizza il modello di confronto resource-ID sopra se devi rilevare queste risorse da solo.
  • PreservedResourceBlock.save() solleva NotImplementedError se chiamato direttamente — le risorse fanno il round-trip automaticamente quando chiami image.save() sull’intero documento.

Problemi comuni

ProblemaCausaCorrezione
image.indexed_palette è NoneIl tipo di dati colore del documento non è INDEXED_PALETTESolo i documenti a colori indicizzati contengono una tavolozza
NotSupportedException impostazione image.image_resourcesIl setter non è supportato in questa build FOSSTratta image_resources come sola lettura
has_icc_profile / is_icc_profile_untagged / global_angle non modificare maiQueste 3 proprietà sono stub segnaposto hardcoded in questa build FOSSConfronta block.id con ImageResourceIds invece (vedi sopra)

FAQ

Qual è la differenza tra image_resources e resources?

Entrambi elencano gli stessi blocchi di risorse sottostanti, ma come tipi di oggetto diversi: image_resources restituisce oggetti PreservedResourceBlock (ID/nome/taglia grezzi, usati per il round-tripping), mentre resources restituisce riepiloghi PsdResourceInfo (aggiunge una classificazione kind, attualmente sempre UNKNOWN).

Posso modificare o rimuovere una risorsa immagine?

No — il setter di image_resources genera NotSupportedException, e PreservedResourceBlock.save() genera NotImplementedError se chiamato direttamente. Le risorse sono in sola lettura in questa build FOSS.


API Reference Riepilogo

Classe/MetodoDescrizione
PsdImage.image_resourcesBlocchi di risorse grezze (PreservedResourceBlock, sola lettura)
PsdImage.resourcesRiepiloghi delle risorse (PsdResourceInfo, kind sono sempre UNKNOWN)
PsdImage.indexed_paletteRiepilogo della tavolozza dei colori indicizzata, se presente
ImageResourceIdsCostanti di ID risorsa note per il confronto con resource_id/id

Vedi anche

 Italiano