PsdImage e
Layer, offrendo agli sviluppatori .NET un accesso programmatico alla struttura di un documento PSD senza
dipendenze native da compilare. La libreria legge le dimensioni, la modalità colore, la profondità di bit e il metodo di compressione di un file PSD/PSB,
ed espone ogni livello tramite PsdImage.Layers: ogni Layer fornisce il suo nome,
i limiti, l’opacità, la visibilità e la chiave del metodo di fusione (BlendMode), insieme a informazioni di canale di livello inferiore (ChannelInformation) e dati della maschera (LayerMaskData). Un sottoinsieme di
metadati del livello — nome, limiti (Left/Top/Right/Bottom) e metodo di fusione — può essere
modificato in loco e persistito su disco con PsdImage.Save(); tutto il resto è di sola lettura per progettazione in questa build FOSS. Aspose.PSD FOSS for .NET è rilasciata con licenza MIT. Installala con
dotnet add package Aspose.PSD.FOSS — la libreria non ha dipendenze native di terze parti,
solo il .NET BCL. Per la famiglia di prodotti enterprise, vedi Aspose.PSD — Enterprise Product Family.Image.Load(filePath) o Image.Load(stream) apre un file e restituisce un Image, convertito in PsdImage per l’accesso specifico ai PSDPsdImage.Width, Height e Size riportano le dimensioni della telaPsdImage.ColorMode (ColorModes), BitsPerChannel e Compression (CompressionMethod) descrivono come i dati dei pixel sono codificatiPsdImage.Version (PsdVersion) distingue il PSD standard dalla variante PSB a documento grandePsdImage.Layers restituisce ogni Layer nell’ordine del documento; PsdImage.ActiveLayer indica quale è attivoLayer espone Name, Bounds, Opacity, IsVisible e BlendModeKey (BlendMode)Layer.ChannelInformation e Layer.LayerMaskData espongono i metadati di canale e maschera per un’ispezione più approfonditaLayer.ChannelsCount indica quanti canali immagine contiene un layerLayer.Name, Layer.Left/Top/Right/Bottom e Layer.BlendModeKey possono essere impostati direttamentePsdImage.Save(filePath) o PsdImage.Save(stream) salvano il documento modificato su discoImage.Load conferma che le modifiche vengano eseguite correttamente in round-tripNotSupportedException se impostate — questa build supporta modifiche solo a livello di metadati, non una riscrittura completaPsdImage.ImageResources e GlobalLayerResources espongono le collezioni ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo riporta le informazioni sulla maschera di livello a livello di documentoPsdImage.IsFlatten e HasTransparencyData segnalano i flag a livello di documentoPsdLoadException e PsdSaveException mostrano gli errori di caricamento/salvataggio con messaggi chiariCarica un file con Image.Load e esegui il cast del risultato a PsdImage per i membri specifici di PSD.
using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");
Il nome del livello, i limiti e la modalità di fusione possono essere modificati in loco e salvati nuovamente su disco.
using (var image = (PsdImage)Image.Load("test.psd"))
{
image.Layers[0].Name = "Renamed layer";
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 40;
image.Layers[0].Bottom = 60;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("edited.psd");
}
using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");
Le informazioni del canale possono essere lette ma non riassegnate — provare a impostarle genera NotSupportedException.
using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException
Aspose.PSD FOSS for .NET è con licenza MIT. Puoi usarlo, modificarlo e ridistribuirlo secondo i termini della licenza MIT, anche in prodotti commerciali.
Vedi la sezione di installazione sopra per il comando di installazione corrente.
Carica e salva file PSD e PSB (documenti di Photoshop di grandi dimensioni). Non rende né esporta dati pixel in altri formati raster come PNG o JPEG.
PsdImage (una sottoclasse di Image). Carica un documento con PsdImage.Load, quindi leggi la sua collezione Layers e le proprietà dell’intestazione.
Sì — Layer espone un setter funzionante per diverse proprietà, come visibilità e nome, e PsdImage.Layers stesso ha un setter funzionante per sostituire la collezione. Alcune proprietà specifiche (informazioni sul canale, dati della maschera, intervalli di fusione e alcune risorse a livello di documento) sono di sola lettura in questa build FOSS e generano NotSupportedException se impostate.