Nucleo API
API principale
PsdImage è il punto di ingresso per caricare, ispezionare e salvare documenti PSD/PSB. Estende la classe base astratta Image, che dichiara Width, Height, Bounds, Load(), Save() e Dispose().
Caricamento e salvataggio dei documenti
Image.Load() accetta un percorso file o un Stream e restituisce un Image; esegui il cast del risultato a PsdImage per accedere al resto della superficie del documento. PsdImage.Save() scrive il documento nuovamente su un percorso file o su uno stream.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);Proprietà dell’intestazione del documento
PsdImage espone l’intestazione analizzata come proprietà tipizzate: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size e IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");Risorse immagine
PsdImage.ImageResources restituisce l’array ResourceBlock[] analizzato. In questa build FOSS, ImageResources, GlobalLayerResources, ActiveLayer e HasTransparencyData possono essere letti ma non riassegnati — i loro setter lanciano NotSupportedException.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}Suggerimenti e best practice
- Esegui sempre il cast del risultato di
Image.Load()aPsdImageper accedere ai membri specifici di PSD. - Racchiudi gli oggetti
Dispose()in una dichiarazioneusing;PsdImageimplementaIDisposable. - Considera
ImageResources,GlobalLayerResources,ActiveLayereHasTransparencyDatacome di sola lettura anche se espongono un setter. - Verifica
image.Layers.Lengthprima di indicizzareimage.Layers— un documento appiattito potrebbe non avere alcun livello.
Problemi comuni
| Problema | Cause | Correzione |
|---|---|---|
NotSupportedException durante l’impostazione di ImageResources | Questa proprietà è di sola lettura nella build FOSS nonostante abbia un setter | Leggi il valore; non tentare di riassegnarlo |
Array image.Layers vuoto in un documento appiattito | IsFlatten è true e il documento non ha livelli analizzati | Verifica image.Layers.Length (o image.IsFlatten) prima di indicizzare in image.Layers |
FAQ
Il caricamento di un documento PSD decodifica i dati dei pixel?
No. PsdImage.Load() analizza l’intestazione del documento, i metadati dei livelli e le risorse senza decodificare o renderizzare i dati dei pixel.
Posso convertire un file PSD in un altro formato immagine?
No. Questa libreria carica, esamina e salva solo documenti PSD/PSB — non rende i dati dei pixel né li converte in altri formati immagine.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Image.Load(string) / Image.Load(Stream) | Carica un documento PSD o PSB |
PsdImage.Save(string) / PsdImage.Save(Stream) | Salva il documento |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | Proprietà dell’intestazione del documento |
PsdImage.ImageResources | Blocchi di risorse immagine analizzati (sola lettura) |