1. Prodotti
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS per .NET

Libreria open source .NET per caricare, ispezionare e salvare file PSD/PSB con accesso ai metadati dei livelli. Licenza MIT, non è necessario Adobe Photoshop.

Libreria .NET Open-Source per file PSD/PSB

Aspose.PSD FOSS for .NET è una libreria gratuita, con licenza MIT, puramente C# per caricare, ispezionare, e salvare file Adobe Photoshop PSD e PSB senza richiedere Adobe Photoshop o alcun runtime proprietario. Espone una API leggera e autonoma incentrata su 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.

Carica e Ispeziona File PSD/PSB

  • Image.Load(filePath) o Image.Load(stream) apre un file e restituisce un Image, convertito in PsdImage per l’accesso specifico ai PSD
  • PsdImage.Width, Height e Size riportano le dimensioni della tela
  • PsdImage.ColorMode (ColorModes), BitsPerChannel e Compression (CompressionMethod) descrivono come i dati dei pixel sono codificati
  • PsdImage.Version (PsdVersion) distingue il PSD standard dalla variante PSB a documento grande

Convalida e catalogazione dei file di progettazione

  • Convalidare un batch di file di design prima di passarli a un processo a valle
  • Creare un catalogo leggero di asset delle dimensioni e modalità colore di PSD/PSB
  • Rilevare i file PSB (documento di grandi dimensioni) che richiedono una gestione diversa rispetto ai PSD standard

Lavorare con i livelli

  • PsdImage.Layers restituisce ogni Layer nell’ordine del documento; PsdImage.ActiveLayer indica quale è attivo
  • Ogni Layer espone Name, Bounds, Opacity, IsVisible e BlendModeKey (BlendMode)
  • Layer.ChannelInformation e Layer.LayerMaskData espongono i metadati di canale e maschera per un’ispezione più approfondita
  • Layer.ChannelsCount indica quanti canali immagine contiene un layer

Struttura del livello di audit

  • Verificare la struttura dei livelli di un PSD senza aprire Photoshop
  • Generare un report dei nomi dei livelli, della visibilità e delle modalità di fusione per una revisione del design
  • Identificare i livelli nascosti o con opacità zero rimasti da modifiche precedenti

Modifica metadati di base del layer

  • Layer.Name, Layer.Left/Top/Right/Bottom e Layer.BlendModeKey possono essere impostati direttamente
  • PsdImage.Save(filePath) o PsdImage.Save(stream) salvano il documento modificato su disco
  • Ricaricare un file salvato con Image.Load conferma che le modifiche vengano eseguite correttamente in round-trip
  • Le proprietà non elencate sopra (informazioni del canale, dati della maschera, intervalli di fusione, risorse immagine) generano NotSupportedException se impostate — questa build supporta modifiche solo a livello di metadati, non una riscrittura completa

Modifiche leggere, scriptabili

  • Rinomina i livelli programmaticamente come parte di una pipeline di organizzazione file automatizzata
  • Riposiziona o ridimensiona il riquadro di delimitazione di un livello senza uno strumento di progettazione
  • Aggiorna in batch le modalità di fusione su molti file per coerenza

Ispeziona i blocchi di risorse e lo stato del documento

  • PsdImage.ImageResources e GlobalLayerResources espongono le collezioni ResourceBlock/LayerResource
  • PsdImage.GlobalLayerMaskInfo riporta le informazioni sulla maschera di livello a livello di documento
  • PsdImage.IsFlatten e HasTransparencyData segnalano i flag a livello di documento
  • PsdLoadException e PsdSaveException mostrano gli errori di caricamento/salvataggio con messaggi chiari

Diagnostica e Ispeziona

  • Diagnostica perché un determinato file PSD non riesce a caricarsi, con un’eccezione tipizzata invece di un errore generico
  • Verifica se un file è stato salvato in forma appiattita prima dell’elaborazione successiva
  • Ispeziona i blocchi di risorse incorporati per i metadati a livello di formato

Carica un file PSD e ispeziona i suoi livelli

Carica 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}");

Modifica i metadati del livello e salva

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}");

Leggi le informazioni del canale (sola lettura)

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

Domande Frequenti

Qual è il modello di licenza?

Aspose.PSD FOSS for .NET è con licenza MIT. Puoi usarlo, modificarlo e ridistribuirlo secondo i termini della licenza MIT, anche in prodotti commerciali.

Come installo Aspose.PSD FOSS for .NET?

Vedi la sezione di installazione sopra per il comando di installazione corrente.

Quali formati può Aspose.PSD FOSS for .NET leggere e scrivere?

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.

Qual è la classe di entry-point principale?

PsdImage (una sottoclasse di Image). Carica un documento con PsdImage.Load, quindi leggi la sua collezione Layers e le proprietà dell’intestazione.

Posso modificare i metadati del layer?

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.

  

Risorse di Supporto e Apprendimento

 Italiano