Pendahuluan

Aspose.PSD FOSS untuk Python memuat, memeriksa, dan menyimpan dokumen PSD dan PSB melalui sekumpulan kecil kelas. Posting ini melihat bagian-bagian dari inti API yang tidak dibahas secara mendalam oleh posting pendahuluan: bagaimana Image dan PsdImage saling berhubungan, tipe nilai geometri yang digunakan di seluruh perpustakaan, dan bagaimana perpustakaan melaporkan kesalahan pemuatan dan penyimpanan.


Apa yang Disertakan

Gambar dan PsdImage

Image adalah kelas dasar abstrak minimal: ia hanya mendefinisikan load(), yang memeriksa masukan dan mengembalikan subclass konkret — untuk masukan PSD/PSB, subclass tersebut adalah PsdImage. Seluruh permukaan dokumen — color_mode, version, layers, compression, bits_per_channel, size, dan lainnya — berada pada PsdImage itu sendiri, bukan pada basis Image.

from aspose_psd_foss.image import Image
from aspose_psd_foss.psdimage import PsdImage

with Image.load("input.psd") as image:
    assert isinstance(image, PsdImage)
    print(f"ColorMode: {image.color_mode}, Version: {image.version}")
    print(f"Size: {image.size}, Layers: {image.layer_count}")

Tipe Nilai Geometri

Point, Size, Rectangle, dan RectangleF adalah tipe nilai yang digunakan untuk koordinat dan ekstensi di seluruh API — Layer.bounds adalah Rectangle, dan PsdImage.size adalah Size. Rectangle memiliki metode geometri nyata: contains(), intersect_rect(), union_rect(), inflate(), dan from_left_top_right_bottom(), antara lain.

from aspose_psd_foss.rectangle import Rectangle

layer_bounds = image.layers[0].bounds
fully_inside = layer_bounds.contains(Rectangle(0, 0, 10, 10))
overlap = Rectangle.intersect_rect(layer_bounds, Rectangle(0, 0, 100, 100))
print(f"Contains (0,0,10,10): {fully_inside}, overlap: {overlap}")

Blok Sumber Daya dan Pengecualian

PsdImage.image_resources mengembalikan daftar yang diuraikan dari objek ResourceBlock — masing-masing memperlihatkan id, name, data_size, dan signature. Pada build FOSS ini, image_resources, global_layer_resources, active_layer, dan has_transparency_data dapat dibaca tetapi tidak dapat ditetapkan ulang — masing-masing memiliki setter yang memunculkan NotSupportedException jika dipanggil, jadi perlakukan mereka sebagai read-only meskipun tampil sebagai properti biasa.

Kesalahan memuat dan menyimpan muncul sebagai dua tipe pengecualian khusus: PsdLoadException ketika dokumen tidak dapat diurai, dan PsdSaveException ketika dokumen tidak dapat ditulis kembali.

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

try:
    with PsdImage.load("input.psd") as image:
        for resource in image.image_resources:
            print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")
except PsdLoadException as ex:
    print(f"Failed to load input.psd: {ex}")

Mulai Cepat

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
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.coreexceptions.psdloadexception import PsdLoadException

try:
    with PsdImage.load("input.psd") as image:
        print(f"Size: {image.size}, ColorMode: {image.color_mode}")
        print(f"ImageResources: {image.resource_count}")
except PsdLoadException as ex:
    print(f"Load failed: {ex}")

Format yang Didukung

FormatEkstensiBacaTulis
PSDpsd✓✓
PSBpsb✓✓

Sumber Terbuka & Lisensi

Aspose.PSD FOSS untuk Python berlisensi MIT dan dapat digunakan dalam produk komersial tanpa royalti, tanpa watermark evaluasi atau batas penggunaan.

Perpustakaan ini tidak memiliki dependensi native pihak ketiga — hanya perpustakaan standar Python yang diperlukan pada runtime.


Memulai

Sumber Daya Terkait