1. Продукты
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS для .NET

Библиотека с открытым исходным кодом .NET для загрузки, инспектирования и сохранения файлов PSD/PSB с доступом к метаданным слоёв. Лицензия MIT, Adobe Photoshop не требуется.

Библиотека .NET с открытым исходным кодом для файлов PSD/PSB

Aspose.PSD FOSS for .NET — это бесплатная библиотека с лицензией MIT, написанная полностью на C#, предназначенная для загрузки, инспекции, и сохранения файлов Adobe Photoshop PSD и PSB без необходимости наличия Adobe Photoshop или какого-либо проприетарного runtime. Она предоставляет лёгкую, автономную API, сосредоточенную вокруг 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.

Загрузка и просмотр файлов PSD/PSB

  • Image.Load(filePath) или Image.Load(stream) открывает файл и возвращает Image, приведённый к PsdImage для доступа к специфическим для PSD свойствам
  • PsdImage.Width, Height и Size сообщают размеры холста
  • PsdImage.ColorMode (ColorModes), BitsPerChannel и Compression (CompressionMethod) описывают, как кодируются данные пикселей
  • PsdImage.Version (PsdVersion) различает стандартный PSD и вариант крупного документа PSB

Проверка и каталогизация файлов дизайна

  • Проверить пакет файлов дизайна перед передачей их в последующий процесс
  • Создать лёгкий каталог ресурсов с размерами и цветовыми режимами PSD/PSB
  • Обнаружить файлы PSB (large-document), которые требуют иной обработки, чем стандартные PSD

Работа со слоями

  • PsdImage.Layers возвращает каждый Layer в порядке следования в документе; PsdImage.ActiveLayer сообщает, какой из них активен
  • Каждый Layer предоставляет Name, Bounds, Opacity, IsVisible и BlendModeKey (BlendMode)
  • Layer.ChannelInformation и Layer.LayerMaskData раскрывают метаданные каналов и масок для более глубокого анализа
  • Layer.ChannelsCount сообщает, сколько каналов изображения содержит слой

Структура слоя аудита

  • Провести аудит структуры слоёв PSD без открытия Photoshop
  • Сгенерировать отчёт о названиях слоёв, их видимости и режимах наложения для обзора дизайна
  • Выявить скрытые или слои с нулевой непрозрачностью, оставшиеся после предыдущих правок

Редактировать базовые метаданные слоя

  • Layer.Name, Layer.Left/Top/Right/Bottom, and Layer.BlendModeKey можно установить напрямую
  • PsdImage.Save(filePath) or PsdImage.Save(stream) сохраняет изменённый документ обратно на диск
  • Перезагрузка сохранённого файла с помощью Image.Load подтверждает корректность кругового прохода правок
  • Свойства, не перечисленные выше (информация о каналах, данные маски, диапазоны смешивания, ресурсы изображения), вызывают NotSupportedException, если их установить — эта сборка поддерживает только правки метаданных, а не полное переавторивание

Лёгкие, скриптируемые правки

  • Переименовывать слои программно в рамках автоматизированного конвейера организации файлов
  • Перемещать или изменять размер ограничивающего прямоугольника слоя без использования инструмента дизайна
  • Пакетно обновлять режимы наложения во многих файлах для обеспечения согласованности

Проверка блоков ресурсов и состояния документа

  • PsdImage.ImageResources и GlobalLayerResources предоставляют коллекции ResourceBlock/LayerResource
  • PsdImage.GlobalLayerMaskInfo сообщает информацию о маске слоя на уровне всего документа
  • PsdImage.IsFlatten и HasTransparencyData сообщают флаги уровня документа
  • PsdLoadException и PsdSaveException выводят ошибки загрузки/сохранения с понятными сообщениями

Диагностика и проверка

  • Диагностировать, почему конкретный файл PSD не загружается, используя типизированное исключение вместо общего сообщения об ошибке
  • Проверить, был ли файл сохранён в уплощённой форме перед дальнейшей обработкой
  • Исследовать встроенные блоки ресурсов на наличие метаданных уровня формата

Загрузить файл PSD и просмотреть его слои

Загрузите файл с помощью 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, включая коммерческие продукты.

Как установить Aspose.PSD FOSS for .NET?

Смотрите раздел установки выше, чтобы узнать текущую команду установки.

Какие форматы может Aspose.PSD FOSS for .NET читать и записывать?

Он загружает и сохраняет файлы 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, если попытаться установить их.

  

Ресурсы поддержки и обучения

 Русский