Cara Bekerja dengan Aspose.PSD FOSS Core API di Python

Cara Bekerja dengan Aspose.PSD FOSS Core API di Python

Aspose.PSD FOSS untuk Python memuat dan memeriksa struktur dokumen PSD/PSB melalui PsdImage, subclass dari Image. Artikel ini mencakup memuat dokumen, membaca header dan sumber gambar, serta menyimpannya kembali ke disk.

Panduan Langkah demi Langkah

Langkah 1: Instal Paket

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATH

Langkah 2: Impor Kelas yang Diperlukan

PsdImage adalah titik masuk yang digunakan sepanjang panduan ini:

from aspose_psd_foss.psdimage import PsdImage

Langkah 3: Muat Dokumen PSD/PSB

PsdImage.load() membuka dokumen dari jalur file atau aliran:

from aspose_psd_foss.psdimage import PsdImage

image = PsdImage.load("input.psd")

Langkah 4: Periksa Header Dokumen

PsdImage menampilkan bidang header yang dibaca dari dokumen yang diparsing: width, height, bits_per_channel, color_mode (nilai ColorModes), dan compression (nilai CompressionMethod):

print(f"{image.width}x{image.height}, {image.bits_per_channel} bpc")
print(f"Color mode: {image.color_mode}")    # e.g. ColorModes.RGB
print(f"Compression: {image.compression}")  # e.g. CompressionMethod.RLE
print(f"Flattened: {image.is_flatten}")

Nilai ColorModes adalah BITMAP, GRAYSCALE, INDEXED, RGB, CMYK, MULTICHANNEL, DUOTONE, dan LAB. Nilai CompressionMethod adalah RAW, RLE, ZIP_WITHOUT_PREDICTION, dan ZIP_WITH_PREDICTION.


Langkah 5: Baca Blok Sumber Daya Gambar

image_resources mengembalikan entri ResourceBlock yang diparsing dari dokumen. Setiap blok menampilkan id, name, dan size:

for resource in image.image_resources:
    print(f"Resource {resource.id} \"{resource.name}\" - {resource.size} bytes")

image_resources adalah read-only dalam build FOSS ini — memberikan nilai padanya akan memicu NotSupportedException (lihat Known Limitations dalam FAQ).


Langkah 6: Simpan Dokumen

Tulis kembali dokumen ke disk, lalu lepaskan sumber daya gambar:

image.save("output.psd")
image.dispose()

Masalah Umum dan Solusinya

PsdLoadException saat memuat file. Masukan bukan dokumen PSD/PSB yang valid, atau header-nya gagal validasi. Pastikan file tersebut adalah file PSD/PSB yang asli sebelum memuatnya.

NotSupportedException saat menyetel image_resources or global_layer_resources. Setter ini tidak didukung dalam build FOSS ini. Perlakukan image_resources sebagai read-only.

Pertanyaan yang Sering Diajukan

Apakah saya dapat memuat file PSD dari aliran alih-alih jalur file?

Ya — PsdImage.load() menerima baik string jalur file maupun stream yang dapat dibaca (io.BytesIO/io.BufferedIOBase).

Apakah image_resources mencakup data lapisan?

Tidak. image_resources menyimpan blok sumber daya tingkat dokumen (diparsing dari bagian sumber daya gambar PSD). Data tingkat layer dibaca melalui PsdImage.layers — lihat Bekerja dengan Layer.

Apakah PsdImage.version merupakan versi format file PSD?

Tidak. PsdImage.version melaporkan nomor versi API internal yang kompatibel dengan Aspose.PSD (saat ini 6) — ini tidak terkait dengan apakah file yang dimuat adalah PSD atau PSB. Setter-nya hanya menerima nilai 6; nilai lain akan memicu ValueError.

Lihat Juga

 Bahasa Indonesia