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 для доступа к специфическим для PSD свойствамPsdImage.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, and Layer.BlendModeKey можно установить напрямуюPsdImage.Save(filePath) or PsdImage.Save(stream) сохраняет изменённый документ обратно на дискImage.Load подтверждает корректность кругового прохода правокNotSupportedException, если их установить — эта сборка поддерживает только правки метаданных, а не полное переавториваниеPsdImage.ImageResources и GlobalLayerResources предоставляют коллекции ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo сообщает информацию о маске слоя на уровне всего документаPsdImage.IsFlatten и HasTransparencyData сообщают флаги уровня документаPsdLoadException и PsdSaveException выводят ошибки загрузки/сохранения с понятными сообщениямиЗагрузите файл с помощью Image.Load и приведите результат к типу PsdImage для доступа к членам, специфичным для 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}");
Имя слоя, границы и режим наложения можно изменить на месте и сохранить обратно на диск.
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). Он не рендерит и не экспортирует пиксельные данные в другие растровые форматы, такие как PNG или JPEG.
PsdImage (подкласс Image). Загрузите документ с помощью PsdImage.Load, затем прочитайте его коллекцию Layers и свойства заголовка.
Да — Layer предоставляет рабочий сеттер для нескольких свойств, таких как visibility и name, а PsdImage.Layers сам по себе имеет рабочий сеттер для замены коллекции. Некоторые конкретные свойства (channel information, mask data, blending ranges и некоторые document- level resources) являются только для чтения в этой FOSS-сборке и бросают NotSupportedException, если попытаться установить их.