Řešení potíží Aspose.PSD FOSS for .NET

Řešení potíží Aspose.PSD FOSS for .NET

Řešení problémů Aspose.PSD FOSS pro .NET

Tato stránka popisuje nejčastější problémy, které se vyskytují při načítání, prohlížení a ukládání dokumentů PSD/PSB pomocí Aspose.PSD FOSS pro .NET.


Problémy s načítáním

PsdLoadException se zprávou o nepodporované verzi

Deklarované pole verze PSD v souboru není ani standardní PSD, ani hodnota pro velké dokumenty PSB. Před načtením ověřte, že soubor je skutečný, nepoškozený dokument PSD/PSB:

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

PsdLoadException o délce sekce překračující hranici

Interní pole délky souboru nejsou v souladu s jeho skutečnou velikostí — to obvykle znamená, že soubor je oříznutý nebo poškozený, nikoli že používá nepodporovanou, ale jinak platnou strukturu. Znovu exportujte soubor z původní aplikace a zkuste to znovu.


Problémy při ukládání

PsdSaveException o délce Pascalova řetězce

Řetězcová hodnota — nejčastěji název vrstvy nebo zdroje — přesahuje 255 bajtů, což je maximum, které může pole Pascalova řetězce v PSD zakódovat:

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

Problémy při úpravách

NotSupportedException při nastavování vlastnosti

Několik vlastností je v této FOSS verzi jen pro čtení. Na PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Na Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Považujte je za pouze pro získání — nepřiřazujte jim hodnoty.

Průhlednost vrstvy vypadá po nastavení špatně

Layer.Opacity je byte v rozsahu 0-255, ne zlomek 0.0-1.0 nebo procento:

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

Odstranění vrstvy se neprojevuje

PsdImage.Layers má funkční setter na úrovni kolekce, ale jednotlivé prvky pole nelze jednoduše odstranit přímo – přiřaďte celý filtrovaný pole znovu:

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

Problémy s instalací

Balíček nebyl nalezen

Potvrďte přesnou identitu balíčku:

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

Diagnostický kontrolní seznam

Před otevřením požadavku na podporu projděte tento kontrolní seznam:

  1. Potvrďte, že soubor je skutečně PSD/PSB — a PsdLoadException o nepodporované verzi obvykle znamená, že soubor není skutečný dokument PSD/PSB.
  2. Zkontrolujte NotSupportedException — možná nastavujete jednu ze 7 jen pro čtení uvedených výše vlastností místo toho, abyste ji četli.
  3. Verify Opacity je v rozsahu 0-255, nikoli 0.0-1.0 nebo 0-100.
  4. Udržujte řetězcové hodnoty pod 255 bajty před uložením, aby se předešlo PsdSaveException.
  5. Call image.Save po každé úpravě — změny v Layer instance nejsou uloženy, dokud není dokument uložen.

Viz také:

 Čeština