PsdImage och
Layer, vilket ger .NET utvecklare programmatisk åtkomst till en PSD-dokuments struktur utan
inhemska beroenden att kompilera. Biblioteket läser en PSD/PSB-fils dimensioner, färgläge, bithöjd och komprimerings
metod, och exponerar varje lager via PsdImage.Layers: varje Layer rapporterar sitt namn,
gränser, opacitet, synlighet och blandningslägesnyckel (BlendMode), tillsammans med lägre nivå-kanalinformation
(ChannelInformation) och maskdata (LayerMaskData). En delmängd av
lagermetadata — namn, gränser (Left/Top/Right/Bottom), och blandningsläge — kan
modifieras på plats och sparas tillbaka till disk med PsdImage.Save(); allt annat på
ytan är skrivskyddat enligt design i detta FOSS-bygge. Aspose.PSD FOSS for .NET är MIT-licensierat. Installera det med
dotnet add package Aspose.PSD.FOSS — biblioteket har noll tredjeparts-inhemska
beroenden, endast .NET BCL. För företagsproduktfamiljen, se Aspose.PSD — Enterprise Product Family.Image.Load(filePath) eller Image.Load(stream) öppnar en fil och returnerar en Image, kastad till PsdImage för PSD-specifik åtkomstPsdImage.Width, Height och Size rapporterar dukens dimensionerPsdImage.ColorMode (ColorModes), BitsPerChannel och Compression (CompressionMethod) beskriver hur pixeldata kodasPsdImage.Version (PsdVersion) skiljer standard-PSD från den stora-dokument-PSB-variantenPsdImage.Layers returnerar varje Layer i dokumentordning; PsdImage.ActiveLayer rapporterar vilken som är aktivLayer exponerar Name, Bounds, Opacity, IsVisible och BlendModeKey (BlendMode)Layer.ChannelInformation och Layer.LayerMaskData exponerar kanal- och maskmetadata för djupare inspektionLayer.ChannelsCount rapporterar hur många bildkanaler ett lager bärLayer.Name, Layer.Left/Top/Right/Bottom och Layer.BlendModeKey kan sättas direktPsdImage.Save(filePath) eller PsdImage.Save(stream) sparar det modifierade dokumentet tillbaka till diskenImage.Load bekräftar att redigeringarna går igenom korrektNotSupportedException om de sätts — den här versionen stöder endast metadata-ändringar, inte full återförfattningPsdImage.ImageResources och GlobalLayerResources exponerar ResourceBlock/LayerResource-samlingarPsdImage.GlobalLayerMaskInfo rapporterar dokumentomfattande lagermaskinformationPsdImage.IsFlatten och HasTransparencyData rapporterar dokumentnivåflaggorPsdLoadException och PsdSaveException visar laddnings-/sparningsfel med tydliga meddelandenLäs in en fil med Image.Load och kasta resultatet till PsdImage för PSD-specifika medlemmar.
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}");
Lagernamn, gränser och blandningsläge kan ändras på plats och sparas tillbaka till disk.
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}");
Kanalinformation kan läsas men inte tilldelas om — att försöka sätta den kastar 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 är licensierad under MIT. Du kan använda, modifiera och distribuera den under villkoren för MIT-licensen, inklusive i kommersiella produkter.
Se installationsavsnittet ovan för det aktuella installationskommandot.
Den laddar och sparar PSD- och PSB-filer (Photoshop large document). Den renderar inte eller exporterar pixeldatan till andra rasterformat som PNG eller JPEG.
PsdImage (en underklass till Image). Ladda ett dokument med PsdImage.Load, läs sedan dess Layers-samling och huvudegenskaper.
Ja — Layer exponerar en fungerande setter för flera egenskaper, såsom synlighet och namn, och PsdImage.Layers själv har en fungerande setter för att ersätta samlingen. Några specifika egenskaper (kanalinformation, maskdata, blandningsintervall och vissa dokumentnivåresurser) är skrivskyddade i den här FOSS-byggnaden och kastar NotSupportedException om de sätts.