PsdImage și
Layer, oferind dezvoltatorilor .NET acces programatic la structura unui document PSD fără
dependențe native la compilare. Biblioteca citește dimensiunile, modul de culoare, adâncimea de biți și metoda de compresie a unui fișier PSD/PSB și
expune fiecare strat prin PsdImage.Layers: fiecare Layer raportează numele,
limitele, opacitatea, vizibilitatea și cheia modului de amestecare (BlendMode), împreună cu nivelul inferior al
informațiilor canalului (ChannelInformation) și datele măștii (LayerMaskData). Un subset de
metadatele stratului — nume, limite (Left/Top/Right/Bottom), și mod de amestecare — poate fi
modificat la față locului și persistat pe disc cu PsdImage.Save(); tot restul pe
suprafață este doar în citire prin design în această construcție FOSS. Aspose.PSD FOSS for .NET este licențiată sub MIT. Instalați-l cu
dotnet add package Aspose.PSD.FOSS — biblioteca nu are nici o dependență nativă de terți, doar
.NET BCL. Pentru familia de produse enterprise, vedeți Aspose.PSD — Enterprise Product Family.Image.Load(filePath) sau Image.Load(stream) deschide un fișier și returnează un Image, convertit la PsdImage pentru acces specific PSDPsdImage.Width, Height și Size raportează dimensiunile pânzeiPsdImage.ColorMode (ColorModes), BitsPerChannel și Compression (CompressionMethod) descriu modul în care sunt codate datele pixelilorPsdImage.Version (PsdVersion) diferențiază PSD standard de varianta PSB pentru documente mariPsdImage.Layers returnează fiecare Layer în ordinea documentului; PsdImage.ActiveLayer raportează care este activăLayer expune Name, Bounds, Opacity, IsVisible și BlendModeKey (BlendMode)Layer.ChannelInformation și Layer.LayerMaskData expun metadatele de canal și mască pentru o inspecție mai profundăLayer.ChannelsCount raportează câte canale de imagine conține un layerLayer.Name, Layer.Left/Top/Right/Bottom și Layer.BlendModeKey pot fi setate directPsdImage.Save(filePath) sau PsdImage.Save(stream) salvează documentul modificat înapoi pe discImage.Load confirmă că modificările trec corect printr-un ciclu completNotSupportedException dacă sunt setate — această construcție suportă editări doar de metadate, nu reautorizarea completăPsdImage.ImageResources și GlobalLayerResources expun colecțiile ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo raportează informațiile despre masca de strat la nivel de documentPsdImage.IsFlatten și HasTransparencyData raportează indicatori la nivel de documentPsdLoadException și PsdSaveException expun erorile de încărcare/salvare cu mesaje clareÎncărcați un fișier cu Image.Load și convertiți rezultatul la PsdImage pentru membri specifici 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}");
Numele stratului, limitele și modul de amestecare pot fi modificate la fața locului și salvate înapoi pe disc.
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}");
Informațiile canalului pot fi citite, dar nu pot fi reasignate — încercarea de a le seta aruncă 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 este licențiat sub MIT. Poți să îl folosești, să îl modifici și să îl redistribui conform termenilor licenței MIT, inclusiv în produse comerciale.
Consultați secțiunea de instalare de mai sus pentru comanda de instalare curentă.
Încarcă și salvează fișiere PSD și PSB (documente mari Photoshop). Nu redă sau exportă datele pixel la alte formate raster, cum ar fi PNG sau JPEG.
PsdImage (o subclasă a lui Image). Încarcă un document cu PsdImage.Load, apoi citește colecția Layers și proprietățile de antet.
Da — Layer expune un setter funcțional pentru mai multe proprietăţi, cum ar fi vizibilitatea şi numele, iar PsdImage.Layers în sine are un setter funcțional pentru înlocuirea colecţiei. Câteva proprietăţi specifice (informaţii de canal, date de mască, intervale de amestecare şi unele resurse la nivel de document) sunt numai în citire în această construcție FOSS şi aruncă NotSupportedException dacă sunt setate.