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-fossfrom 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
| Formato | Estensione | Leggi | Scrivi |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
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.