Nucleo API
API principale
PsdImage è il punto di ingresso per caricare, ispezionare e salvare documenti PSD/PSB. Estende la classe base astratta Image, che dichiara solo load() — il resto della superficie del documento (width, height, save(), supporto al context-manager) è definito direttamente su PsdImage, non ereditato.
Caricamento e salvataggio dei documenti
Image.load() accetta un percorso file o uno stream e restituisce un Image; per input PSD/PSB questo è sempre un PsdImage, quindi la superficie del documento è immediatamente disponibile senza un cast esplicito. PsdImage supporta anche l’istruzione with per la pulizia automatica, e PsdImage.save() scrive il documento nuovamente su un percorso file o stream.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load(input_path) as image:
# ... inspect or edit ...
image.save(output_path)Proprietà dell’intestazione del documento
PsdImage espone l’intestazione analizzata come proprietà tipizzate: width, height, bits_per_channel, color_mode, version, compression, size e is_flatten.
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Compression: {image.compression}, IsFlatten: {image.is_flatten}")Risorse immagine
PsdImage.image_resources restituisce l’elenco analizzato di oggetti ResourceBlock. In questa build FOSS, image_resources, global_layer_resources, active_layer e has_transparency_data possono essere letti ma non riassegnati — i loro setter sollevano NotSupportedException.
for resource in image.image_resources:
print(f"Resource {resource.id}: {resource.name} ({resource.data_size} bytes)")Suggerimenti e migliori pratiche
Image.load()restituisce già unPsdImageper input PSD/PSB — non è necessario il cast, a differenza di alcune altre porte di questo library in altri linguaggi.- Usa l’istruzione
with;PsdImagesupporta il protocollo context-manager per la pulizia. - Considera
image_resources,global_layer_resources,active_layerehas_transparency_datacome di sola lettura anche se espongono un setter. - Verifica
image.layer_countprima di indicizzareimage.layers— un documento appiattito può avere zero livelli.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
NotSupportedException quando si imposta image_resources | Questa proprietà è di sola lettura nella build FOSS nonostante abbia un setter | Leggi il valore; non tentare di riassegnarlo |
Lista image.layers vuota su un documento appiattito | is_flatten è True e il documento non ha livelli analizzati | Verifica image.layer_count (o image.is_flatten) prima di indicizzare in image.layers |
FAQ
Il caricamento di un documento PSD decodifica i dati pixel?
No. PsdImage.load() analizza l’intestazione del documento, i metadati dei livelli e le risorse senza decodificare o renderizzare i dati pixel.
Posso convertire un file PSD in un altro formato immagine?
No. Questa libreria carica, ispeziona e salva solo documenti PSD/PSB — non renderizza i dati pixel né converte in altri formati immagine.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Image.load(path) / Image.load(stream) | Carica un documento PSD o PSB |
PsdImage.save(path) / PsdImage.save(stream) | Salva il documento |
PsdImage.width / height / bits_per_channel / color_mode / version / compression / size / is_flatten | Proprietà dell’intestazione del documento |
PsdImage.image_resources | Blocchi di risorse immagine analizzati (sola lettura) |