Come lavorare con il Aspose.PSD FOSS Core API in .NET

Come lavorare con il Aspose.PSD FOSS Core API in .NET

Aspose.PSD FOSS per .NET carica e ispeziona la struttura del documento PSD/PSB tramite PsdImage, una sottoclasse di Image. Questo articolo copre il caricamento di un documento, la lettura dell’intestazione e delle risorse immagine, e il salvataggio su disco.

Guida passo-passo

Passo 1: Installa il pacchetto

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

Passo 2: Importa le classi richieste

using Aspose.PSD.FileFormats.Psd;

Passo 3: Carica un documento PSD/PSB

PsdImage.Load apre un documento da un percorso file o da uno stream:

using var image = PsdImage.Load("input.psd");

Passo 4: Ispeziona l’intestazione del documento

PsdImage espone i campi dell’intestazione letti dal documento analizzato: Width, Height, BitsPerChannel, ColorMode (un valore ColorModes), e Compression (un valore CompressionMethod):

Console.WriteLine($"{image.Width}x{image.Height}, {image.BitsPerChannel} bpc");
Console.WriteLine($"Color mode: {image.ColorMode}");   // e.g. ColorModes.Rgb
Console.WriteLine($"Compression: {image.Compression}"); // e.g. CompressionMethod.RLE
Console.WriteLine($"Flattened: {image.IsFlatten}");

I valori di ColorModes includono Bitmap, Grayscale, Indexed, Rgb e Cmyk, tra gli altri (Multichannel, Duotone, Lab). I valori di CompressionMethod sono Raw, RLE, ZipWithoutPrediction e una variante ZIP-with-prediction.


Passo 5: Leggi i blocchi delle risorse immagine

ImageResources restituisce le voci ResourceBlock analizzate del documento. Ogni blocco espone ID, Name e Size:

foreach (var resource in image.ImageResources)
{
    Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}

ImageResources è di sola lettura in questa build FOSS — assegnarvi genera un’eccezione NotSupportedException (vedi le Limitazioni note nella FAQ).


Passo 6: Salva il documento

image.Save("output.psd");

Problemi comuni e soluzioni

PsdLoadException quando si carica un file. L’input non è un documento PSD/PSB valido, oppure l’intestazione non ha superato la convalida. Conferma che il file sia un vero file PSD/PSB prima di caricarlo.

NotSupportedException quando si imposta ImageResources or GlobalLayerResources. Questi setter non sono supportati in questa build FOSS. Tratta ImageResources come di sola lettura.

ColorMode or Compression viene stampato come valore numerico anziché come nome. Esegui il cast della proprietà al suo tipo enum esplicitamente, oppure usa .ToString(), per ottenere il nome leggibile (ColorModes.Rgb, non 3).

Domande frequenti

Posso caricare un file PSD da uno stream anziché da un percorso file?

Sì — PsdImage.Load ha un overload che accetta un Stream.

Include ImageResources i dati dei livelli?

No. ImageResources contiene blocchi di risorse a livello di documento (analizzati dalla sezione delle risorse immagine del PSD). I dati a livello di livello vengono letti tramite PsdImage.Layers — vedi Lavorare con i livelli.

Il PsdImage.Version è la versione del formato file PSD?

No. PsdImage.Version segnala un numero di versione interno API compatibile con Aspose.PSD (attualmente 6) — non è correlato al fatto che il file caricato sia PSD o PSB.

Vedi anche

 Italiano