Depanare Aspose.PSD FOSS for Python
Depanare Aspose.PSD FOSS pentru Python
Această pagină acoperă cele mai comune probleme întâlnite la încărcarea, inspectarea și salvarea documentelor PSD/PSB cu Aspose.PSD FOSS pentru Python.
Probleme la încărcare
PsdLoadException cu un mesaj despre o versiune nesuporâtă
Câmpul de versiune PSD declarat în fișier nu este nici versiunea standard PSD, nici valoarea PSB pentru documente mari. Confirmă că fișierul este un document PSD/PSB autentic și necorupt înainte de încărcare:
try:
image = PsdImage.load("input.psd")
except PsdLoadException as ex:
print(f"Not a valid PSD/PSB file: {ex}")PsdLoadException despre o lungime a secțiunii care depășește o limită
Câmpurile interne de lungime ale fișierului sunt inconsistente cu dimensiunea sa reală — acest lucru înseamnă de obicei că fișierul este trunchiat sau corupt, nu că folosește o structură nesuporâtă, dar în rest validă. Reexportă fișierul din aplicația sursă și încearcă din nou.
Probleme la salvare
PsdSaveException despre lungimea unui șir Pascal
O valoare de tip șir — de obicei numele unui strat sau al unei resurse — depășește 255 de octeți, maximumul pe care un câmp de șir Pascal PSD îl poate codifica:
layer.name = layer.name[:255] if len(layer.name) > 255 else layer.name
image.save("output.psd")Probleme la editare
NotSupportedException la setarea unei proprietăți
Mai multe proprietăți sunt numai citire în această versiune FOSS. Pe PsdImage: active_layer, image_resources, global_layer_resources, has_transparency_data. Pe Layer: channel_information, layer_mask_data, layer_blending_ranges_data. Tratați-le ca fiind doar de tip get — nu le atribuiți.
Opacitatea stratului pare incorectă după ce a fost setată
Layer.opacity este în mod convențional o valoare 0-255, nu o fracție 0.0-1.0 sau un procentaj:
layer.opacity = 200 # approximately 78% opaque, not 200%Eliminarea unui strat nu are efect
PsdImage.layers are un setter funcțional la nivelul colecției, dar elementele individuale ale listei nu pot fi pur și simplu eliminate la fața locului — reasignați întreaga listă filtrată:
image.layers = [l for l in image.layers if l.name != "Unwanted Layer"]Probleme de instalare
Pachetul nu a fost găsit
Confirmați identitatea exactă a pachetului:
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:$PYTHONPATHListă de verificare pentru diagnostic
Înainte de a deschide o problemă de suport, parcurgeți această listă de verificare:
- Confirmați că fișierul este cu adevărat PSD/PSB — a
PsdLoadExceptiondespre o versiune neacceptată de obicei înseamnă că fișierul nu este un document PSD/PSB real. - Verificați
NotSupportedException— este posibil să setați una dintre cele 7 proprietăți numai pentru citire enumerate mai sus în loc să o citiți. - Verify
opacityeste în intervalul 0-255, nu 0.0-1.0 sau 0-100. - Păstrați valorile șirului sub 255 de octeți înainte de a salva, pentru a evita
PsdSaveException. - Call
image.savedupă fiecare editare — modificări la unLayerinstanțele nu sunt păstrate până când documentul este salvat.