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 memicuNotSupportedException— sumber daya bersifat read-only dalam build FOSS ini.PsdImage.has_icc_profile,is_icc_profile_untagged, danglobal_angleadalah nilai placeholder tetap dalam build FOSS ini (selaluFalse,None, dan0masing-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()memicuNotImplementedErrorjika dipanggil secara langsung — sumber daya secara otomatis melakukan round-trip ketika Anda memanggilimage.save()pada seluruh dokumen.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
image.indexed_palette adalah None | Jenis data warna dokumen bukan INDEXED_PALETTE | Hanya dokumen indexed-color yang memiliki palet |
NotSupportedException pengaturan image.image_resources | Setter tidak didukung dalam build FOSS ini | Perlakukan image_resources sebagai read-only |
has_icc_profile / is_icc_profile_untagged / global_angle tidak pernah berubah | Ketiga properti ini dikodekan keras sebagai stub placeholder dalam build FOSS ini | Bandingkan 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/Metode | Deskripsi |
|---|---|
PsdImage.image_resources | Blok sumber daya mentah (PreservedResourceBlock, hanya baca) |
PsdImage.resources | Ringkasan sumber daya (PsdResourceInfo, kind selalu UNKNOWN) |
PsdImage.indexed_palette | Ringkasan palet warna terindeks, bila ada |
ImageResourceIds | Konstanta ID sumber daya yang diketahui untuk perbandingan dengan resource_id/id |