Felsökning Aspose.PSD FOSS for .NET

Felsökning Aspose.PSD FOSS for .NET

Felsökning av Aspose.PSD FOSS för .NET

Den här sidan täcker de vanligaste problemen som uppstår vid inläsning, inspektion och sparande av PSD/PSB-dokument med Aspose.PSD FOSS för .NET.


Inläsningsproblem

PsdLoadException med ett meddelande om en version som inte stöds

Filens deklarerade PSD-versionsfält är varken standard-PSD eller det stora dokument-PSB-värdet. Bekräfta att filen är ett äkta, okorrupt PSD/PSB-dokument innan du laddar den:

try
{
    using var image = PsdImage.Load("input.psd");
}
catch (PsdLoadException ex)
{
    Console.WriteLine($"Not a valid PSD/PSB file: {ex.Message}");
}

PsdLoadException om en sektionslängd som överskrider en gräns

Filens interna längdfält stämmer inte överens med dess faktiska storlek — detta innebär vanligtvis att filen är avhuggen eller korrupt, inte att den använder en version som inte stöds men annars giltig struktur. Exportera om filen från dess källprogram och försök igen.


Sparningsproblem

PsdSaveException om en Pascal-stränglängd

Ett strängvärde — oftast ett lager- eller resursnamn — överskrider 255 byte, det maximala som ett PSD Pascal-strängfält kan koda:

layer.Name = layer.Name.Length > 255 ? layer.Name[..255] : layer.Name;
image.Save("output.psd");

Redigeringsproblem

NotSupportedException vid inställning av en egenskap

Flera egenskaper är skrivskyddade i detta FOSS-bygge. På PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. På Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Betrakta dessa som endast läsbara — tilldela dem inte.

Lagrets opacitet ser felaktig ut efter att den satts

Layer.Opacity är en byte i intervallet 0-255, inte en bråkdel 0.0-1.0 eller en procentsats:

layer.Opacity = 200; // approximately 78% opaque, not 200%

En lagerborttagning har ingen effekt

PsdImage.Layers har en fungerande setter på samlingsnivå, men enskilda arrayelement kan inte enkelt tas bort på plats — tilldela hela det filtrerade arrayet på nytt:

image.Layers = image.Layers.Where(l => l.Name != "Unwanted Layer").ToArray();

Installationsproblem

Paketet hittades inte

Bekräfta den exakta paketidentiteten:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build

Diagnostisk checklista

Innan du öppnar ett supportärende, gå igenom denna checklista:

  1. Bekräfta att filen verkligen är PSD/PSB — a PsdLoadException om en version som inte stöds betyder vanligtvis att filen inte är ett riktigt PSD/PSB-dokument.
  2. Kontrollera efter NotSupportedException — du kanske sätter en av de 7 skrivskyddade egenskaperna som listas ovan istället för att läsa den.
  3. Verify Opacity är i intervallet 0-255, inte 0,0-1,0 eller 0-100.
  4. Håll strängvärden under 255 byte innan du sparar, för att undvika PsdSaveException.
  5. Call image.Save efter varje redigering — ändringar av en Layer instansen sparas inte förrän dokumentet är sparat.

Se även

 Svenska