PsdImage і
Layer, даючи .NET розробникам програмний доступ до структури документа PSD без нативних
залежностей для компіляції. Бібліотека читає розміри файлу PSD/PSB, колірний режим, глибину бітів і метод
стиснення, і відкриває кожен шар через PsdImage.Layers: кожен Layer повідомляє його назву,
границі, прозорість, видимість і ключ режиму змішування (BlendMode), а також низькорівневу
інформацію про канали (ChannelInformation) і дані маски (LayerMaskData). Підмножина
метаданих шару — назва, границі (Left/Top/Right/Bottom) і режим змішування — може бути
змінена на місці та збережена назад на диск за допомогою PsdImage.Save(); все інше на
поверхні є лише для читання за задумом у цій FOSS-версії. Aspose.PSD FOSS for .NET має ліцензію MIT. Встановіть її за
dotnet add package Aspose.PSD.FOSS — бібліотека не має сторонніх нативних
залежностей, лише .NET BCL. Для корпоративного сімейства продуктів дивіться Aspose.PSD — Enterprise Product Family.Image.Load(filePath) або Image.Load(stream) відкриває файл і повертає Image, приведений до PsdImage для доступу до специфічних властивостей PSDPsdImage.Width, Height і Size повідомляють розміри полотнаPsdImage.ColorMode (ColorModes), BitsPerChannel і Compression (CompressionMethod) описують, як закодовані дані пікселівPsdImage.Version (PsdVersion) розрізняє стандартний PSD від великого варіанту документа PSBPsdImage.Layers повертає кожен Layer у порядку документа; PsdImage.ActiveLayer повідомляє, який з них активнийLayer надає Name, Bounds, Opacity, IsVisible та BlendModeKey (BlendMode)Layer.ChannelInformation та Layer.LayerMaskData надають метадані каналів і маски для глибшого аналізуLayer.ChannelsCount повідомляє, скільки каналів зображення несе шарLayer.Name, Layer.Left/Top/Right/Bottom та Layer.BlendModeKey можна встановлювати безпосередньоPsdImage.Save(filePath) або PsdImage.Save(stream) зберігає змінений документ назад на дискImage.Load підтверджує, що зміни успішно проходять повний циклNotSupportedException, якщо їх встановлювати — ця збірка підтримує лише редагування метаданих, а не повне перестворенняPsdImage.ImageResources і GlobalLayerResources надають колекції ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo повідомляє про інформацію про маску шарів у всьому документіPsdImage.IsFlatten та HasTransparencyData повідомляють про прапорці на рівні документаPsdLoadException і PsdSaveException виводять помилки завантаження/збереження з чіткими повідомленнямиЗавантажте файл за допомогою Image.Load та приведiть результат до PsdImage для PSD-специфічних членiв.
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}");
Назву шару, межі та режим змішування можна змінити на місці та зберегти назад на диск.
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}");
Інформацію про канали можна читати, але не можна повторно призначати — спроба встановити її викликає 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 ліцензовано за умовами MIT. Ви можете використовувати, змінювати та розповсюджувати його згідно з умовами ліцензії MIT, включно з комерційними продуктами.
Перегляньте розділ встановлення вище, щоб дізнатися поточну команду встановлення.
Він завантажує та зберігає файли PSD і PSB (Photoshop large document). Він не виконує рендеринг або експорт піксельних даних у інші растрові формати, такі як PNG або JPEG.
PsdImage (підклас Image). Завантажте документ за допомогою PsdImage.Load, потім прочитайте його колекцію Layers та властивості заголовка.
Так — Layer надає працюючий встановлювач для кількох властивостей, таких як видимість і ім’я, і PsdImage.Layers сам має працюючий встановлювач для заміни колекції. Декілька конкретних властивостей (інформація про канали, дані маски, діапазони змішування та деякі ресурси рівня документа) є лише для читання у цій FOSS збірці та генерують NotSupportedException, якщо їх встановити.