Risoluzione dei problemi Aspose.PSD FOSS for .NET

Risoluzione dei problemi Aspose.PSD FOSS for .NET

Risoluzione dei problemi di Aspose.PSD FOSS per .NET

Questa pagina descrive i problemi più comuni riscontrati durante il caricamento, l’ispezione e il salvataggio di documenti PSD/PSB con Aspose.PSD FOSS per .NET.


Problemi di caricamento

PsdLoadException con un messaggio relativo a una versione non supportata

Il campo della versione PSD dichiarato nel file non corrisponde né al valore standard PSD né a quello PSB per documenti di grandi dimensioni. Verifica che il documento PSD/PSB sia autentico e non danneggiato prima del caricamento:

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

PsdLoadException relativo a una lunghezza di sezione che supera un limite

I campi di lunghezza interni del file non sono coerenti con le sue dimensioni effettive — questo di solito indica che il file è troncato o danneggiato, non che utilizzi una struttura non supportata ma altrimenti valida. Esporta nuovamente il file dall’applicazione di origine e riprova.


Problemi di salvataggio

PsdSaveException sulla lunghezza di una stringa Pascal

Un valore stringa — solitamente il nome di un livello o di una risorsa — supera i 255 byte, il massimo che un campo stringa Pascal di PSD può codificare:

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

Problemi di modifica

NotSupportedException durante l’impostazione di una proprietà

Alcune proprietà sono di sola lettura in questa versione FOSS. Su PsdImage: ActiveLayer, ImageResources, GlobalLayerResources, HasTransparencyData. Su Layer: ChannelInformation, LayerMaskData, LayerBlendingRangesData. Considerale come solo lettura — non assegnare valori.

L’opacità del livello sembra errata dopo averla impostata

Layer.Opacity è un byte nell’intervallo 0-255, non una frazione 0.0-1.0 o una percentuale:

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

La rimozione di un layer non ha effetto

PsdImage.Layers ha un setter funzionante a livello di collezione, ma gli elementi individuali dell’array non possono essere semplicemente rimossi in loco — riassegna l’intero array filtrato:

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

Problemi di installazione

Pacchetto non trovato

Conferma l’identità esatta del pacchetto:

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

Checklist diagnostica

Prima di aprire una segnalazione di supporto, verifica questa checklist:

  1. Conferma che il file sia realmente PSD/PSB — a PsdLoadException Un messaggio relativo a una versione non supportata di solito indica che il file non è un vero documento PSD/PSB.
  2. Verifica NotSupportedException — potresti star impostando una delle 7 proprietà di sola lettura elencate sopra invece di leggerla.
  3. Verify Opacity è nell’intervallo 0-255, non 0.0-1.0 o 0-100.
  4. Mantieni i valori stringa sotto i 255 byte prima di salvare, per evitare PsdSaveException.
  5. Call image.Save dopo ogni modifica — modifiche a una Layer l’istanza non viene mantenuta fino a quando il documento non viene salvato.

Vedi anche

 Italiano