Giriş

Aspose.PSD FOSS for Python, küçük bir sınıf kümesi aracılığıyla PSD ve PSB belgelerini yükler, inceler ve kaydeder. Bu gönderi, giriş gönderisinin derinlemesine ele almadığı çekirdek API bölümlerine bakıyor: Image ve PsdImage nasıl birbirleriyle ilişkilidir, kütüphane genelinde kullanılan geometri değer tipleri ve kütüphanenin yükleme ve kaydetme hatalarını nasıl raporladığı.


Neler Dahildir

Görüntü ve PsdImage

Image, minimal bir soyut temel sınıftır: yalnızca load() tanımlar, bu da girdiyi inceler ve somut bir alt sınıf döndürür — PSD/PSB girdi için bu alt sınıf PsdImage‘dir. Tam belge yüzeyi — color_mode, version, layers, compression, bits_per_channel, size ve daha fazlası — PsdImage üzerinde bulunur, Image temelinde değil.

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}")

Geometri Değer Tipleri

Point, Size, Rectangle ve RectangleF, API genelinde koordinatlar ve ölçüler için kullanılan değer tipleridir — Layer.bounds bir Rectangle, ve PsdImage.size bir Size. Rectangle, gerçek geometri yöntemlerini taşır: contains(), intersect_rect(), union_rect(), inflate() ve from_left_top_right_bottom(), diğerleri arasında.

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}")

Kaynak Blokları ve İstisnalar

PsdImage.image_resources ayrıştırılmış ResourceBlock nesnelerinin listesini döndürür — her biri id, name, data_size ve signature öğelerini sunar. Bu FOSS sürümünde, image_resources, global_layer_resources, active_layer ve has_transparency_data okunabilir ancak yeniden atanamaz — her birinin çağrıldığında NotSupportedException hatası yükselten bir ayarlayıcısı vardır, bu yüzden bunları sıradan özellikler gibi görünseler bile yalnızca okunabilir olarak kabul edin.

Yükleme ve kaydetme hataları iki özel istisna türü olarak ortaya çıkar: PsdLoadException belge ayrıştırılamadığında ve PsdSaveException belge geri yazılamadığında.

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}")

Hızlı Başlangıç

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}")

Desteklenen Biçimler

BiçimUzantıOkuYaz
PSDpsd✓✓
PSBpsb✓✓

Açık Kaynak & Lisanslama

Aspose.PSD FOSS Python için MIT lisanslıdır ve telif ücreti ödemeden, değerlendirme filigranı ya da kullanım limiti olmaksızın ticari ürünlerde kullanılabilir.

Kütüphanenin hiçbir üçüncü taraf yerel bağımlılığı yok — çalışma zamanında yalnızca Python standart kütüphanesi gereklidir.


Başlarken

İlgili Kaynaklar