Risoluzione dei problemi Aspose.PSD FOSS for Python
Risoluzione dei problemi Aspose.PSD FOSS per Python
Questa pagina copre i problemi più comuni riscontrati durante il caricamento, l’ispezione e il salvataggio dei documenti PSD/PSB con Aspose.PSD FOSS per Python.
Problemi di caricamento
PsdLoadException con un messaggio relativo a una versione non supportata
Il campo della versione PSD dichiarato nel file non corrisponde né alla PSD standard né al valore PSB per documenti di grandi dimensioni. Verifica che il file sia un documento PSD/PSB autentico e non corrotto prima di caricarlo:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException relativo a una lunghezza di sezione che supera un limite
I campi di lunghezza interni del file sono incoerenti con le sue dimensioni effettive — questo di solito indica che il file è troncato o corrotto, non che utilizzi una struttura non supportata ma altrimenti valida. Esporta nuovamente il file dall’applicazione di origine e riprova.
Problemi di salvataggio
PsdSaveException sulla lunghezza di una stringa Pascal
Un valore stringa — più comunemente il nome di un livello o di una risorsa — supera i 255 byte, il massimo che un campo stringa Pascal di PSD può codificare:
layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")Problemi di modifica
NotSupportedException durante l’impostazione di una proprietà
Alcune proprietà sono in sola lettura in questa build FOSS. Su PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. Su Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Considerale come solo lettura — non assegnare loro valori.
L’opacità del livello sembra errata dopo averla impostata
Layer.opacity è convenzionalmente un valore da 0 a 255, non una frazione da 0,0 a 1,0 o una percentuale:
layer.opacity = 200 # approximately 78% opaque, not 200%La rimozione di un livello non ha effetto
PsdImage.layers ha un setter funzionante a livello di collezione, ma gli elementi individuali della lista non possono semplicemente essere rimossi in loco — riassegna l’intera lista filtrata:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]Problemi di installazione
Pacchetto non trovato
Conferma l’identità esatta del pacchetto:
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:$PYTHONPATHChecklist diagnostica
Prima di aprire una segnalazione di supporto, passa in rassegna questa checklist:
- Conferma che il file sia effettivamente PSD/PSB — a
PsdLoadExceptionriguardo a una versione non supportata di solito significa che il file non è un vero documento PSD/PSB. - Verifica la presenza di
NotSupportedException— potresti star impostando una delle 7 proprietà di sola lettura elencate sopra invece di leggerla. - Verify
opacityè nell’intervallo 0-255, non 0.0-1.0 o 0-100. - Mantieni i valori stringa sotto i 255 byte prima di salvare, per evitare
PsdSaveException. - Call
image.savedopo ogni modifica — modifiche aLayerl’istanza non viene mantenuta fino a quando il documento non viene salvato.