Resources

Resources

Egy betöltött PsdImage elérhetővé teszi a képernyő erőforrás blokkjait — metaadat-szerű bejegyzéseket, mint például rácsok, segédvonalak és ICC profil adatcsomagok — két csak olvasható nézeten keresztül, valamint egy külön összefoglalót az indexelt színpalettákhoz.


Erőforrás blokkok felsorolása

PsdImage.image_resources egy PreservedResourceBlock ad vissza erőforrásonként, a nyers erőforrás ID-vel, névvel és bájtmérettel:

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 helyette egy külön PsdResourceInfo összefoglalót ad vissza erőforrásonként, hozzáadva egy kind osztályozást — ebben a FOSS buildben a kind mindig PsdResourceKind.UNKNOWN, mivel ennek a buildnek az erőforrás-elemzője nem dekódolja a specifikus erőforrás ID-kat szemantikus tulajdonságokká.


Ismert erőforrás ID-k felismerése

Mivel a kind nincs szemantikus szinten feloldva, egy adott erőforrást a block.id összehasonlításával a ImageResourceIds konstansokkal lehet felismerni:

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

Indexált színpaletta olvasása

Ha a dokumentum színadata paletta-alapú, a PsdImage.indexed_palette visszaadja annak bejegyzéseit:

palette = image.indexed_palette

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

Tippek és bevált gyakorlatok

  • PsdImage.image_resources lekérője működik az erőforrások listázásához, de a beállítója NotSupportedException hibát dob — az erőforrások csak olvashatóak ebben a FOSS buildben.
  • PsdImage.has_icc_profile, is_icc_profile_untagged és global_angle rögzített helyettesítő értékek ebben a FOSS buildben (mindig False, None és 0 a megfelelő helyen), függetlenül a betöltött dokumentum tényleges tartalmától — használja a fent említett erőforrás-azonosító összehasonlítási mintát, ha saját maga szeretné felismerni ezeket az erőforrásokat.
  • PreservedResourceBlock.save() NotImplementedError hibát dob, ha közvetlenül hívják — az erőforrások automatikusan körbejárnak, ha a image.save() függvényt az egész dokumentumra hívja meg.

Gyakori problémák

ProblémaOkaJavítás
image.indexed_palette van NoneA dokumentum színadat típusa nem INDEXED_PALETTECsak az indexelt színű dokumentumok tartalmaznak palettát
NotSupportedException beállítása image.image_resourcesA beállító nem támogatott ebben a FOSS buildbenKezeld a image_resources csak olvashatóként
has_icc_profile / is_icc_profile_untagged / global_angle soha ne változzanakEzek a 3 tulajdonság hardcoded helyőrző stubok ebben a FOSS buildbenHelyette hasonlítsd össze a block.id a ImageResourceIds értékével (lásd fent)

FAQ

Mi a különbség a image_resources és a resources között?

Mindkettő ugyanazokat az alaprendszer erőforrás blokkokat listázza, de különböző objektumtípusokként: image_resources PreservedResourceBlock objektumokat ad vissza (nyers ID/név/méret, a körkörös átvitelhez használatos), míg a resources PsdResourceInfo összefoglalókat ad vissza (hozzáad egy kind osztályozást, jelenleg mindig UNKNOWN).

Módosíthatok vagy eltávolíthatok egy image resource-t?

Nem — a image_resources beállítója NotSupportedException-t dob, és a PreservedResourceBlock.save() NotImplementedError-t dob, ha közvetlenül hívják. Az erőforrások csak olvashatóak ebben a FOSS buildben.


API Reference összefoglaló

Osztály/MódszerLeírás
PsdImage.image_resourcesNyers erőforrás blokkok (PreservedResourceBlock, csak olvasható)
PsdImage.resourcesErőforrás-összefoglalók (PsdResourceInfo, kind mindig UNKNOWN)
PsdImage.indexed_paletteIndexelt színpaletta-összefoglaló, ha van
ImageResourceIdsIsmert erőforrás-azonosító állandók összehasonlításhoz a resource_id/id értékekkel

Lásd még:

 Magyar