Inti API
API Inti
PsdImage adalah titik masuk untuk memuat, memeriksa, dan menyimpan dokumen PSD/PSB. Ia memperluas kelas dasar abstrak Image, yang hanya mendeklarasikan load() — sisanya dari permukaan dokumen (width, height, save(), dukungan context-manager) didefinisikan pada PsdImage itu sendiri, bukan diwariskan.
Memuat dan Menyimpan Dokumen
Image.load() menerima jalur file atau aliran dan mengembalikan sebuah Image; untuk masukan PSD/PSB ini selalu berupa PsdImage, sehingga permukaan dokumen langsung tersedia tanpa cast eksplisit. PsdImage juga mendukung pernyataan with untuk pembersihan otomatis, dan PsdImage.save() menulis kembali dokumen ke jalur file atau aliran.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Properti Header Dokumen
PsdImage mengekspos header yang diurai sebagai properti bertipe: width, height, bits_per_channel, color_mode, version, compression, size, dan is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Sumber Daya Gambar
PsdImage.image_resources mengembalikan daftar yang diurai dari objek ResourceBlock. Dalam build FOSS ini, image_resources, global_layer_resources, active_layer, dan has_transparency_data dapat dibaca tetapi tidak dapat ditetapkan kembali — setter mereka memunculkan NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Tips dan Praktik Terbaik
Image.load()sudah mengembalikanPsdImageuntuk input PSD/PSB — tidak perlu melakukan cast, tidak seperti beberapa port bahasa lain dari pustaka ini.- Gunakan pernyataan
with;PsdImagemendukung protokol context-manager untuk pembersihan. - Anggap
image_resources,global_layer_resources,active_layer, danhas_transparency_datasebagai read-only meskipun mereka memiliki setter. - Periksa
image.layer_countsebelum mengindeks keimage.layers— dokumen yang diratakan mungkin tidak memiliki lapisan.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
NotSupportedException saat mengatur image_resources | Properti ini hanya dapat dibaca dalam build FOSS meskipun memiliki setter | Baca nilainya; jangan mencoba menetapkan ulang |
Daftar image.layers kosong pada dokumen yang diratakan | is_flatten adalah True dan dokumen tidak memiliki lapisan yang diparse | Periksa image.layer_count (atau image.is_flatten) sebelum mengindeks ke image.layers |
FAQ
Apakah memuat dokumen PSD mendekode data piksel?
Tidak. PsdImage.load() mengurai header dokumen, metadata lapisan, dan sumber daya tanpa mendekode atau merender data piksel.
Apakah saya dapat mengonversi file PSD ke format gambar lain?
Tidak. Perpustakaan ini hanya memuat, memeriksa, dan menyimpan dokumen PSD/PSB — tidak merender data piksel atau mengonversi ke format gambar lain.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
Image.load(path) / Image.load(stream) | Muat dokumen PSD atau PSB |
PsdImage.save(path) / PsdImage.save(stream) | Simpan dokumen |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Properti header dokumen |
PsdImage.image_resources | Blok sumber daya gambar yang diurai (hanya-baca) |