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_resourceslekérője működik az erőforrások listázásához, de a beállítójaNotSupportedExceptionhibát dob — az erőforrások csak olvashatóak ebben a FOSS buildben.PsdImage.has_icc_profile,is_icc_profile_untaggedésglobal_anglerögzített helyettesítő értékek ebben a FOSS buildben (mindigFalse,Noneés0a 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()NotImplementedErrorhibát dob, ha közvetlenül hívják — az erőforrások automatikusan körbejárnak, ha aimage.save()függvényt az egész dokumentumra hívja meg.
Gyakori problémák
| Probléma | Oka | Javítás |
|---|---|---|
image.indexed_palette van None | A dokumentum színadat típusa nem INDEXED_PALETTE | Csak az indexelt színű dokumentumok tartalmaznak palettát |
NotSupportedException beállítása image.image_resources | A beállító nem támogatott ebben a FOSS buildben | Kezeld a image_resources csak olvashatóként |
has_icc_profile / is_icc_profile_untagged / global_angle soha ne változzanak | Ezek a 3 tulajdonság hardcoded helyőrző stubok ebben a FOSS buildben | Helyette 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ódszer | Leírás |
|---|---|
PsdImage.image_resources | Nyers erőforrás blokkok (PreservedResourceBlock, csak olvasható) |
PsdImage.resources | Erőforrás-összefoglalók (PsdResourceInfo, kind mindig UNKNOWN) |
PsdImage.indexed_palette | Indexelt színpaletta-összefoglaló, ha van |
ImageResourceIds | Ismert erőforrás-azonosító állandók összehasonlításhoz a resource_id/id értékekkel |