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() a PsdImage per accedere ai membri specifici di PSD.
  • Racchiudi gli oggetti Dispose() in una dichiarazione using; PsdImage implementa IDisposable.
  • Considera ImageResources, GlobalLayerResources, ActiveLayer e HasTransparencyData come di sola lettura anche se espongono un setter.
  • Verifica image.Layers.Length prima di indicizzare image.Layers — un documento appiattito potrebbe non avere alcun livello.

Problemi comuni

ProblemaCauseCorrezione
NotSupportedException durante l’impostazione di ImageResourcesQuesta proprietà è di sola lettura nella build FOSS nonostante abbia un setterLeggi il valore; non tentare di riassegnarlo
Array image.Layers vuoto in un documento appiattitoIsFlatten è true e il documento non ha livelli analizzatiVerifica 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/MetodoDescrizione
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 / IsFlattenProprietà dell’intestazione del documento
PsdImage.ImageResourcesBlocchi di risorse immagine analizzati (sola lettura)

Vedi anche

 Italiano