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’ı NotSupportedException hatası ortaya çıkar — bu FOSS yapısında kaynaklar yalnızca okunur.
  • PsdImage.has_icc_profile, is_icc_profile_untagged ve global_angle, bu FOSS yapısında sabit yer tutucu değerlerdir (her zaman sırasıyla False, None ve 0) 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ırsa NotImplementedError hatası verir — kaynaklar, tüm belge üzerinde image.save() çağırdığınızda otomatik olarak dönüşüm yapar.

Yaygın Sorunlar

SorunNedenDüzeltme
image.indexed_palette, NoneBelgenin renk veri türü INDEXED_PALETTE değil.Sadece indeksli renk belgeleri bir palet içerir.
NotSupportedException ayarı image.image_resourcesBu FOSS derlemesinde setter desteklenmiyor.image_resources‘ı yalnızca okuma izniyle ele al
has_icc_profile / is_icc_profile_untagged / global_angle asla değişmezBu 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öntemAçıklama
PsdImage.image_resourcesHam kaynak blokları (PreservedResourceBlock, yalnızca okuma)
PsdImage.resourcesKaynak özetleri (PsdResourceInfo, kind her zaman UNKNOWN)
PsdImage.indexed_paletteVar olduğunda indeksli renk paleti özeti
ImageResourceIdsresource_id/id ile karşılaştırma için bilinen kaynak kimliği sabitleri

Ayrıca Bakınız

 Türkçe