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 buildDiagnose-Checkliste
Bevor Sie ein Support-Ticket öffnen, gehen Sie diese Checkliste durch:
- Stellen Sie sicher, dass das Dokument tatsächlich PSD/PSB ist — a
PsdLoadExceptionEin Hinweis auf eine nicht unterstützte Version bedeutet in der Regel, dass das Dokument kein echtes PSD/PSB-Dokument ist. - Prüfen Sie auf
NotSupportedException— Sie könnten eine der oben aufgeführten 7 schreibgeschützten Eigenschaften setzen, anstatt sie zu lesen. - Verify
Opacityliegt im Bereich 0-255, nicht 0,0-1,0 oder 0-100. - Behalten Sie Zeichenkettenwerte unter 255Byte vor dem Speichern, um zu vermeiden
PsdSaveException. - Call
image.Savenach jeder Bearbeitung — Änderungen an einemLayerInstanzen werden nicht persistiert, bis das Dokument gespeichert ist.