Resources
Resources
Yüklenmiş PsdImage, görüntü kaynak bloklarını — ızgaralar, kılavuzlar ve ICC profil yükleri gibi meta veri tarzı girişleri — iki yalnızca okunabilir görünüm aracılığıyla ve ayrıca indeksli renk paletleri için ayrı bir özet sunar.
Kaynak Bloklarını Listeleme
PsdImage.image_resources, her kaynak için ham kaynak kimliği, adı ve bayt boyutuyla birlikte bir PreservedResourceBlock döndürür:
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, bunun yerine her kaynak için ayrı bir PsdResourceInfo özeti döndürür, bir kind sınıflandırması ekleyerek — bu FOSS derlemesinde kind her zaman PsdResourceKind.UNKNOWN’dır, çünkü bu derlemenin kaynak ayrıştırıcısı belirli kaynak kimliklerini anlamsal özelliklere çözümlemez.
Bilinen Kaynak Kimliklerini Tanıma
kind anlamsal olarak çözümlenmediğinden, belirli bir kaynağı block.id değerini ImageResourceIds içindeki sabitlerle karşılaştırarak tanıyın:
for block in image.image_resources:
if block.id == ImageResourceIds.ICC_PROFILE:
print(f"Found an ICC profile resource ({block.data_size} bytes)")İndeksli Renk Paletini Okuma
Belgenin renk verileri palet tabanlıysa, PsdImage.indexed_palette girdilerini döndürür:
palette = image.indexed_palette
if palette is not None:
print(f"Palette entries: {len(palette.entries)}")İpuçları ve En İyi Uygulamalar
PsdImage.image_resources’ getter kaynakları listelemek için çalışır, ancak setter’ıNotSupportedExceptionhatası ortaya çıkar — bu FOSS yapısında kaynaklar yalnızca okunur.PsdImage.has_icc_profile,is_icc_profile_untaggedveglobal_angle, bu FOSS yapısında sabit yer tutucu değerlerdir (her zaman sırasıylaFalse,Noneve0) yüklenen belgenin gerçek içeriğine bakılmaksızın — bu kaynakları kendiniz tespit etmeniz gerekiyorsa yukarıdaki kaynak-ID karşılaştırma desenini kullanın.PreservedResourceBlock.save(), doğrudan çağrılırsaNotImplementedErrorhatası verir — kaynaklar, tüm belge üzerindeimage.save()çağırdığınızda otomatik olarak dönüşüm yapar.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
image.indexed_palette, None | Belgenin renk veri türü INDEXED_PALETTE değil. | Sadece indeksli renk belgeleri bir palet içerir. |
NotSupportedException ayarı image.image_resources | Bu FOSS derlemesinde setter desteklenmiyor. | image_resources‘ı yalnızca okuma izniyle ele al |
has_icc_profile / is_icc_profile_untagged / global_angle asla değişmez | Bu 3 özellik, bu FOSS yapısında sabit kodlanmış yer tutucu taslaklardır. | Bunun yerine block.id‘ı ImageResourceIds ile karşılaştırın (yukarıya bakın) |
FAQ
image_resources ile resources arasındaki fark nedir?
Her ikisi de aynı temel kaynak bloklarını listeler, ancak farklı nesne türleri olarak: image_resources PreservedResourceBlock nesnelerini döndürür (ham ID/isim/boyut, döngüsel kullanım için kullanılır), resources ise PsdResourceInfo özetlerini döndürür (kind sınıflandırması ekler, şu anda her zaman UNKNOWN).
Bir görüntü kaynağını değiştirebilir veya kaldırabilir miyim?
Hayır — image_resources’ ayarlayıcısı NotSupportedException hatası verir ve PreservedResourceBlock.save() doğrudan çağrıldığında NotImplementedError hatası verir. Bu FOSS sürümde kaynaklar yalnızca okunabilir.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
PsdImage.image_resources | Ham kaynak blokları (PreservedResourceBlock, yalnızca okuma) |
PsdImage.resources | Kaynak özetleri (PsdResourceInfo, kind her zaman UNKNOWN) |
PsdImage.indexed_palette | Var olduğunda indeksli renk paleti özeti |
ImageResourceIds | resource_id/id ile karşılaştırma için bilinen kaynak kimliği sabitleri |