Cara Memuat Dokumen PSD di Python

Cara Memuat Dokumen PSD di Python

PsdImage.load adalah satu-satunya titik masuk publik untuk membuka dokumen PSD/PSB — ia menerima baik jalur file maupun aliran dapat-baca yang sudah terbuka. Pembaca tingkat rendah yang membaca per bagian yang didelegasikan secara internal bukanlah sesuatu yang Anda panggil secara langsung.

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

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

Langkah 3: Muat dari Jalur File

image = PsdImage.load("input.psd")
print(f"Loaded: {image.width}x{image.height}")
image.dispose()

Langkah 4: Muat dari Stream

Sebuah stream tidak perlu dapat mencari — load membaca seluruh isinya ke dalam buffer internal sebelum parsing:

with open("input.psd", "rb") as stream:
    image = PsdImage.load(stream)

print(f"Loaded from stream: {image.width}x{image.height}")
image.dispose()

Masalah Umum dan Solusinya

FileNotFoundError: File not found: .... Jalur yang diberikan ke load tidak mengarah ke file yang ada — load checks os.path.isfile sebelum mencoba membuka file tersebut.

PsdLoadException: Unexpected end of PSD/PSB data while reading the file structure. Aliran sumber kehabisan data di tengah parsing (sebuah EOFError saat membaca) — file kemungkinan terpotong.

PsdLoadException: Failed to read PSD/PSB data from the source stream. Terjadi kesalahan I/O saat membaca dari aliran itu sendiri, dibungkus dan dilempar kembali sebagai sebuah PsdLoadException.

ArgumentNullException ketika memanggil load. load dipanggil dengan None sebagai argumen stream.

Pertanyaan yang Sering Diajukan

Apakah saya perlu mengembalikan posisi stream ke awalnya sebelum memanggil load?

Tidak — jika stream dapat di-seek, load mengembalikan posisi semula setelah dibaca; jika tidak dapat di-seek, load tetap berfungsi karena ia menyimpan isi stream secara internal sebelum parsing.

Apa perbedaan antara dua kegagalan FileNotFoundError/PsdLoadException di atas?

Path file yang hilang memicu standar FileNotFoundError sebelum parsing dimulai. A PsdLoadException sebaliknya berarti sebuah file (atau stream) ditemukan dan dibuka, tetapi data PSD/PSB itu sendiri terpotong, rusak, atau tidak dapat dibaca setelah parsing dimulai — lihat juga Troubleshooting untuk yang terkait versi dan batas PsdLoadException varian.

Lihat Juga

 Bahasa Indonesia