Introduzione

Aspose.PSD FOSS per Python carica, ispeziona e salva documenti PSD e PSB attraverso un piccolo insieme di classi. Questo articolo esamina parti del core API che l’articolo introduttivo non ha coperto in profondità: come Image e PsdImage si relazionano tra loro, i tipi di valore della geometria usati in tutta la libreria e come la libreria segnala gli errori di caricamento e salvataggio.


Cosa è incluso

Immagine e PsdImage

Image è una classe base astratta minimale: definisce solo load(), che ispeziona l’input e restituisce una sottoclasse concreta — per input PSD/PSB, quella sottoclasse è PsdImage. L’intera superficie del documento — color_mode, version, layers, compression, bits_per_channel, size e altro — risiede su PsdImage stesso, non sulla base 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}")

Tipi di Valore della Geometria

Point, Size, Rectangle e RectangleF sono i tipi di valore usati per coordinate e estensioni in tutto il API — Layer.bounds è un Rectangle, e PsdImage.size è un Size. Rectangle include veri metodi di geometria: contains(), intersect_rect(), union_rect(), inflate() e from_left_top_right_bottom(), tra gli altri.

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

Blocchi di risorse e eccezioni

PsdImage.image_resources restituisce l’elenco analizzato di oggetti ResourceBlock — ognuno espone id, name, data_size e signature. In questa build FOSS, image_resources, global_layer_resources, active_layer e has_transparency_data possono essere letti ma non riassegnati — ognuno ha un setter che solleva NotSupportedException se invocato, quindi trattali come di sola lettura anche se appaiono come proprietà ordinarie.

Gli errori di caricamento e salvataggio si manifestano come due tipi di eccezione dedicati: PsdLoadException quando un documento non può essere analizzato, e PsdSaveException quando un documento non può essere riscritto.

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

Avvio rapido

pip install aspose-psd-foss
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}")

Formati supportati

FormatoEstensioneLeggiScrivi
PSDpsd✓✓
PSBpsb✓✓

Open source e licenze

Aspose.PSD FOSS per Python è con licenza MIT e può essere usato in prodotti commerciali senza royalties, senza filigrana di valutazione o limite di utilizzo.

La libreria non ha dipendenze native di terze parti — è necessaria solo la libreria standard Python a runtime.


Guida introduttiva

Risorse correlate