Resources

Resources

Een geladen PsdImage maakt zijn afbeeldingsresourceblokken bloot — metadata-achtige items zoals rasters, hulplijnen en ICC-profielpayloads — via twee alleen-lezen weergaven, plus een apart overzicht voor geïndexeerde kleurenpaletten.


Lijst van resourceblokken

PsdImage.image_resources retourneert een PreservedResourceBlock per resource, met de ruwe resource-ID, naam en byte-grootte:

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 retourneert in plaats daarvan een afzonderlijk PsdResourceInfo-overzicht per resource, met een kind-classificatie — in deze FOSS-build is kind altijd PsdResourceKind.UNKNOWN, aangezien de resource-parser van deze build specifieke resource-ID’s niet decodeert naar semantische eigenschappen.


Bekende resource-ID’s herkennen

Aangezien kind niet semantisch wordt opgelost, kunt u een specifieke resource herkennen door block.id te vergelijken met de constanten 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)")

Lezen van een geïndexeerd kleurenpalet

Als de kleurdaten van het document op een palet zijn gebaseerd, retourneert PsdImage.indexed_palette de items:

palette = image.indexed_palette

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

Tips en best practices

  • De getter van PsdImage.image_resources werkt voor het opsommen van resources, maar de setter veroorzaakt NotSupportedException — resources zijn alleen-lezen in deze FOSS-build.
  • PsdImage.has_icc_profile, is_icc_profile_untagged en global_angle zijn vaste placeholder-waarden in deze FOSS-build (altijd respectievelijk False, None en 0), ongeacht de feitelijke inhoud van het geladen document — gebruik het resource-ID-vergelijkingspatroon hierboven als je deze resources zelf moet detecteren.
  • PreservedResourceBlock.save() veroorzaakt NotImplementedError als het direct wordt aangeroepen — resources maken automatisch een round-trip wanneer je image.save() aanroept op het volledige document.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
image.indexed_palette is NoneHet kleurdatatype van het document is niet INDEXED_PALETTEAlleen documenten met geïndexeerde kleuren bevatten een palet
NotSupportedException instelling image.image_resourcesDe setter wordt niet ondersteund in deze FOSS-buildBehandel image_resources als alleen-lezen
has_icc_profile / is_icc_profile_untagged / global_angle nooit wijzigenDeze 3 eigenschappen zijn hardcoded placeholder-stubs in deze FOSS-buildVergelijk block.id met ImageResourceIds in plaats daarvan (zie hierboven)

FAQ

Wat is het verschil tussen image_resources en resources?

Beide geven dezelfde onderliggende resourceblokken weer, maar als verschillende objecttypen: image_resources retourneert PreservedResourceBlock objecten (ruwe ID/naam/grootte, gebruikt voor round-tripping), terwijl resources PsdResourceInfo samenvattingen retourneert (voegt een kind classificatie toe, momenteel altijd UNKNOWN).

Kan ik een image resource wijzigen of verwijderen?

Nee — de setter van image_resources veroorzaakt NotSupportedException, en PreservedResourceBlock.save() veroorzaakt NotImplementedError indien direct aangeroepen. Resources zijn alleen-lezen in deze FOSS-build.


API Reference Samenvatting

Klasse/MethodeBeschrijving
PsdImage.image_resourcesRuwe resourceblokken (PreservedResourceBlock, alleen-lezen)
PsdImage.resourcesResourcesamenvattingen (PsdResourceInfo, kind zijn altijd UNKNOWN)
PsdImage.indexed_paletteSamenvatting van geïndexeerde kleurenpalet, indien aanwezig
ImageResourceIdsBekende resource-ID-constanten voor vergelijking met resource_id/id

Zie ook

 Nederlands