Resources

Resources

Sebuah PsdImage yang dimuat mengekspos blok sumber daya gambar — entri bergaya metadata seperti grid, panduan, dan muatan profil ICC — melalui dua tampilan hanya-baca, serta ringkasan terpisah untuk palet warna terindeks.


Daftar Blok Sumber Daya

PsdImage.image_resources mengembalikan PreservedResourceBlock per sumber daya, dengan ID sumber daya mentah, nama, dan ukuran byte:

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 mengembalikan ringkasan PsdResourceInfo terpisah per sumber daya sebagai gantinya, menambahkan klasifikasi kind — dalam build FOSS ini kind selalu PsdResourceKind.UNKNOWN, karena parser sumber daya build ini tidak mendekode ID sumber daya tertentu menjadi properti semantik.


Mengenali ID Sumber Daya yang Dikenal

Karena kind tidak diselesaikan secara semantik, kenali sumber daya tertentu dengan membandingkan block.id terhadap konstanta di ImageResourceIds:

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

Membaca Palet Warna Terindeks

Jika data warna dokumen berbasis palet, PsdImage.indexed_palette mengembalikan entri-entrinya:

palette = image.indexed_palette

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

Tips dan Praktik Terbaik

  • PsdImage.image_resources’ getter berfungsi untuk mencantumkan sumber daya, tetapi setter-nya memicu NotSupportedException — sumber daya bersifat read-only dalam build FOSS ini.
  • PsdImage.has_icc_profile, is_icc_profile_untagged, dan global_angle adalah nilai placeholder tetap dalam build FOSS ini (selalu False, None, dan 0 masing-masing) terlepas dari konten sebenarnya dari dokumen yang dimuat — gunakan pola perbandingan resource-ID di atas jika Anda perlu mendeteksi sumber daya ini sendiri.
  • PreservedResourceBlock.save() memicu NotImplementedError jika dipanggil secara langsung — sumber daya secara otomatis melakukan round-trip ketika Anda memanggil image.save() pada seluruh dokumen.

Masalah Umum

MasalahPenyebabPerbaikan
image.indexed_palette adalah NoneJenis data warna dokumen bukan INDEXED_PALETTEHanya dokumen indexed-color yang memiliki palet
NotSupportedException pengaturan image.image_resourcesSetter tidak didukung dalam build FOSS iniPerlakukan image_resources sebagai read-only
has_icc_profile / is_icc_profile_untagged / global_angle tidak pernah berubahKetiga properti ini dikodekan keras sebagai stub placeholder dalam build FOSS iniBandingkan block.id dengan ImageResourceIds sebagai gantinya (lihat di atas)

FAQ

Apa perbedaan antara image_resources dan resources?

Keduanya mencantumkan blok sumber daya dasar yang sama, tetapi sebagai jenis objek yang berbeda: image_resources mengembalikan objek PreservedResourceBlock (ID/nama/ukuran mentah, digunakan untuk round-tripping), sementara resources mengembalikan ringkasan PsdResourceInfo (menambahkan klasifikasi kind, saat ini selalu UNKNOWN).

Apakah saya dapat memodifikasi atau menghapus sumber daya gambar?

Tidak — image_resources’ setter memunculkan NotSupportedException, dan PreservedResourceBlock.save() memunculkan NotImplementedError jika dipanggil secara langsung. Sumber daya bersifat hanya-baca dalam build FOSS ini.


API Reference Ringkasan

Kelas/MetodeDeskripsi
PsdImage.image_resourcesBlok sumber daya mentah (PreservedResourceBlock, hanya baca)
PsdImage.resourcesRingkasan sumber daya (PsdResourceInfo, kind selalu UNKNOWN)
PsdImage.indexed_paletteRingkasan palet warna terindeks, bila ada
ImageResourceIdsKonstanta ID sumber daya yang diketahui untuk perbandingan dengan resource_id/id

Lihat Juga

 Bahasa Indonesia