Depanare Aspose.PSD FOSS for .NET
Depanarea Aspose.PSD FOSS pentru .NET
Această pagină acoperă cele mai comune probleme întâlnite la încărcarea, inspectarea și salvarea documentelor PSD/PSB cu Aspose.PSD FOSS pentru .NET.
Probleme la încărcare
PsdLoadException cu un mesaj despre o versiune nesuportată
Câmpul de versiune PSD declarat în fișier nu este nici versiunea standard PSD, nici valoarea PSB pentru documente mari. Confirmați că fișierul este un document PSD/PSB autentic și necorupt înainte de încărcare:
try
{
using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}PsdLoadException despre o lungime a secțiunii care depășește o limită
Câmpurile de lungime interne 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ă nesuportată, dar altfel validă. Reexportați fișierul din aplicația sursă și încercați din nou.
Probleme la salvare
PsdSaveException despre lungimea unui șir Pascal
O valoare de șir — de obicei numele unui strat sau al unei resurse — depășește 255 de octeți, maximul pe care un câmp de șir Pascal din PSD îl poate codifica:
layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");Probleme la editare
NotSupportedException la setarea unei proprietăți
Mai multe proprietăți sunt doar citire în această versiune FOSS. Pe PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Pe Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Tratează-le ca fiind doar de tip get — nu le atribui.
Opacitatea stratului pare incorectă după ce a fost setată
Layer.Opacity este un byte în intervalul 0-255, nu o fracție 0.0-1.0 sau un procentaj:
layer.Opacity = 200; // approximately 78% opaque, not 200%Înlăturarea unui strat nu are efect
PsdImage.Layers are un setter funcțional la nivelul colecției, dar elementele individuale ale tabloului nu pot fi pur și simplu eliminate la loc — reasignați întregul tablou filtrat:
image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();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-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildListă de verificare pentru diagnostic
Înainte de a deschide o solicitare de asistență, 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 de tip șir sub 255 de octeți înainte de salvare, pentru a evita
PsdSaveException. - Call
image.Savedupă fiecare editare — modificări la unLayerinstanța nu este păstrată până când documentul este salvat.