PsdImage i
Layer, dając programistom .NET programowy dostęp do struktury dokumentu PSD bez
natywnych zależności przy kompilacji. Biblioteka odczytuje wymiary pliku PSD/PSB, tryb kolorów, głębię bitową i metodę kompresji
i udostępnia każdą warstwę poprzez PsdImage.Layers: każda Layer zgłasza swoją nazwę,
granice, krycie, widoczność oraz klucz trybu mieszania (BlendMode), wraz z niższego poziomu
informacjami o kanale (ChannelInformation) oraz danymi maski (LayerMaskData). Podzbiór
metadanych warstwy — nazwa, granice (Left/Top/Right/Bottom) i tryb mieszania — może być
modyfikowany w miejscu i zapisywany z powrotem na dysk przy użyciu PsdImage.Save(); wszystko inne na
powierzchni jest z założenia tylko do odczytu w tej wersji FOSS. Aspose.PSD FOSS for .NET jest licencjonowany na warunkach MIT. Zainstaluj go za pomocą
dotnet add package Aspose.PSD.FOSS — biblioteka nie ma żadnych zewnętrznych natywnych
zależności, jedynie .NET BCL. Dla rodziny produktów korporacyjnych zobacz Aspose.PSD — Enterprise Product Family.Image.Load(filePath) lub Image.Load(stream) otwiera plik i zwraca Image, rzutowany na PsdImage w celu uzyskania dostępu specyficznego dla PSDPsdImage.Width, Height i Size podają wymiary płótnaPsdImage.ColorMode (ColorModes), BitsPerChannel i Compression (CompressionMethod) opisują, w jaki sposób dane pikseli są kodowanePsdImage.Version (PsdVersion) rozróżnia standardowy PSD od wariantu dużego dokumentu PSBPsdImage.Layers zwraca każdy Layer w kolejności dokumentu; PsdImage.ActiveLayer informuje, który jest aktywnyLayer udostępnia Name, Bounds, Opacity, IsVisible oraz BlendModeKey (BlendMode)Layer.ChannelInformation i Layer.LayerMaskData udostępniają metadane kanałów i masek do głębszej inspekcjiLayer.ChannelsCount podaje, ile kanałów obrazu posiada warstwaLayer.Name, Layer.Left/Top/Right/Bottom i Layer.BlendModeKey można ustawiać bezpośrednioPsdImage.Save(filePath) lub PsdImage.Save(stream) zapisuje zmodyfikowany dokument z powrotem na dyskImage.Load potwierdza, że zmiany przeszły pełny cyklNotSupportedException, jeśli zostaną ustawione — ta kompilacja obsługuje jedynie edycje metadanych, a nie pełne ponowne tworzeniePsdImage.ImageResources i GlobalLayerResources udostępniają kolekcje ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo raportuje informacje o masce warstwy w całym dokumenciePsdImage.IsFlatten i HasTransparencyData raportują flagi na poziomie dokumentuPsdLoadException i PsdSaveException zgłaszają błędy ładowania/zapisu z czytelnymi komunikatamiZaładuj plik za pomocą Image.Load i rzutuj wynik na PsdImage, aby uzyskać dostęp do członków specyficznych dla 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}");
Nazwę warstwy, granice i tryb mieszania można zmienić w miejscu i zapisać z powrotem na dysk.
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}");
Informacje o kanale można odczytać, ale nie można ich ponownie przypisać — próba ustawienia ich powoduje wyrzucenie 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 jest na licencji MIT. Możesz go używać, modyfikować i rozpowszechniać na warunkach licencji MIT, w tym w produktach komercyjnych.
Zobacz sekcję instalacji powyżej, aby uzyskać bieżące polecenie instalacji.
Ładuje i zapisuje pliki PSD i PSB (Photoshop large document). Nie renderuje ani nie eksportuje danych pikseli do innych formatów rastrowych, takich jak PNG lub JPEG.
PsdImage (podklasa Image). Załaduj dokument przy użyciu PsdImage.Load, a następnie odczytaj jego kolekcję Layers oraz właściwości nagłówka.
Tak — Layer udostępnia działający setter dla kilku właściwości, takich jak widoczność i nazwa, a PsdImage.Layers sam w sobie ma działający setter do zastępowania kolekcji. Niektóre konkretne właściwości (informacje o kanale, dane maski, zakresy mieszania i niektóre zasoby na poziomie dokumentu) są tylko do odczytu w tej wersji FOSS i wyrzucają NotSupportedException, jeśli zostaną ustawione.