Fehlerbehebung Aspose.PSD FOSS for .NET

Fehlerbehebung Aspose.PSD FOSS for .NET

Fehlerbehebung Aspose.PSD FOSS für .NET

Diese Seite behandelt die häufigsten Probleme, die beim Laden, Prüfen und Speichern von PSD/PSB-Dokumenten mit Aspose.PSD FOSS für .NET auftreten.


Ladeprobleme

PsdLoadException mit einer Meldung über eine nicht unterstützte Version

Das deklarierte PSD-Versionsfeld der Datei ist weder der Standard-PSD-noch der große Dokumentwert PSB. Stellen Sie sicher, dass es sich um ein echtes, nicht beschädigtes PSD/PSB-Dokument handelt, bevor Sie es laden:

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

PsdLoadException über eine Abschnittslänge, die eine Grenze überschreitet

Die internen Längenfelder des Dokuments stimmen nicht mit seiner tatsächlichen Größe überein – das bedeutet normalerweise, dass das Dokument abgeschnitten oder beschädigt ist, nicht dass es eine nicht unterstützte, aber ansonsten gültige Struktur verwendet. Exportieren Sie das Dokument erneut aus der Quellanwendung und versuchen Sie es erneut.


Speicherprobleme

PsdSaveException über die Länge einer Pascal-Zeichenkette

Ein Zeichenkettenwert — meist ein Ebenen- oder Ressourcenname — überschreitet 255Byte, das Maximum, das ein PSD-Pascal-String-Feld kodieren kann:

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

Bearbeitungsprobleme

NotSupportedException beim Festlegen einer Eigenschaft

Mehrere Eigenschaften sind in diesem FOSS-Build schreibgeschützt. Auf PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Auf Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Betrachte diese als nur lesbar — weise ihnen nichts zu.

Die Ebenendeckkraft sieht nach dem Setzen falsch aus

Layer.Opacity ist ein byte im Bereich 0-255, nicht ein Bruchwert von 0,0-1,0 oder ein Prozentsatz:

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

Das Entfernen einer Ebene hat keine Wirkung

PsdImage.Layers hat einen funktionierenden Setter auf Sammlungsebene, aber einzelne Array-Elemente können nicht einfach vor Ort entfernt werden — weisen Sie das gesamte gefilterte Array neu zu:

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

Installationsprobleme

Paket nicht gefunden

Bestätigen Sie die genaue Paketidentität:

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

Diagnose-Checkliste

Bevor Sie ein Support-Ticket öffnen, gehen Sie diese Checkliste durch:

  1. Stellen Sie sicher, dass das Dokument tatsächlich PSD/PSB ist — a PsdLoadException Ein Hinweis auf eine nicht unterstützte Version bedeutet in der Regel, dass das Dokument kein echtes PSD/PSB-Dokument ist.
  2. Prüfen Sie auf NotSupportedException — Sie könnten eine der oben aufgeführten 7 schreibgeschützten Eigenschaften setzen, anstatt sie zu lesen.
  3. Verify Opacity liegt im Bereich 0-255, nicht 0,0-1,0 oder 0-100.
  4. Behalten Sie Zeichenkettenwerte unter 255Byte vor dem Speichern, um zu vermeiden PsdSaveException.
  5. Call image.Save nach jeder Bearbeitung — Änderungen an einem Layer Instanzen werden nicht persistiert, bis das Dokument gespeichert ist.

Siehe auch

 Deutsch