Depanare Aspose.PSD FOSS for .NET

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 build

Listă de verificare pentru diagnostic

Înainte de a deschide o solicitare de asistență, parcurgeți această listă de verificare:

  1. Confirmați că fișierul este cu adevărat PSD/PSB — a PsdLoadException despre o versiune neacceptată de obicei înseamnă că fișierul nu este un document PSD/PSB real.
  2. 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.
  3. Verify Opacity este în intervalul 0-255, nu 0.0-1.0 sau 0-100.
  4. Păstrați valorile de tip șir sub 255 de octeți înainte de salvare, pentru a evita PsdSaveException.
  5. Call image.Save după fiecare editare — modificări la un Layer instanța nu este păstrată până când documentul este salvat.

Vezi și:

 Română