Введение

Aspose.PSD FOSS для .NET — это новая открытая библиотека для работы с файлами PSD и PSB (Photoshop large document) из кода .NET. Она выпускается под лицензией MIT, требует только .NET 10.0 во время выполнения и не имеет других сторонних зависимостей. Пакет импортируется с помощью using Aspose.PSD.FOSS;.

Библиотека организована вокруг класса PsdImage, который наследует абстрактный базовый класс Image, а также класса Layer. Image.Load() / PsdImage.Load() загружают документ из пути к файлу или потока, предоставляя информацию заголовка (Width, Height, ColorMode, Version, Compression) и разобранную коллекцию Layers; PsdImage.Save() записывает документ обратно в файл или поток. Каждый Layer раскрывает свои метаданные — Name, Bounds, IsVisible, Opacity, Clipping, BlendModeKey, а также информацию о каналах/масках — и подмножество этих свойств можно изменять на месте и сохранять обратно в файл.

Этот релиз предназначен для разработчиков, которым необходимо просматривать или вносить ограниченные изменения метаданных в файлы PSD/PSB внутри кодовой базы .NET без коммерческой лицензии — инструменты конвейера ресурсов, которые сообщают о структуре слоёв, скрипты сборки, переименовывающие или переключающие видимость слоёв перед передачей, или тестовые фикстуры, которым нужно считывать заголовок PSD и данные слоёв без полноценного движка рендеринга. Библиотека не рендерит пиксельные данные и не конвертирует PSD/PSB в другие форматы изображений — она представляет собой читатель/писатель, ориентированный на метаданные, для контейнерного формата PSD/PSB.


Что включено

Инспекция документа

PsdImage.Load() разбирает заголовок файла PSD или PSB в типизированные свойства — Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size и IsFlatten — без декодирования пиксельных данных.

using var image = (PsdImage)Image.Load(inputPath);
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Layers: {image.Layers.Length}, Compression: {image.Compression}");

Метаданные слоя

Каждый элемент в PsdImage.Layers является Layer, раскрывающим свои границы, видимость, непрозрачность, обрезку и метаданные режима наложения.

foreach (var layer in image.Layers)
{
    Console.WriteLine($"{layer.Name}: {layer.Bounds}, Visible={layer.IsVisible}, Opacity={layer.Opacity}");
}

Поддерживаемые изменения метаданных

Подмножество свойств слоя можно изменить напрямую и записать обратно с помощью PsdImage.Save(): имя, видимость, непрозрачность, обрезка, ключ режима наложения и четыре границы.

Layer layer = image.Layers[0];
layer.Name = $"{layer.Name} (edited)";
layer.IsVisible = !layer.IsVisible;
layer.Opacity = 128;
layer.BlendModeKey = BlendMode.Multiply;
image.Save(outputPath);

Быстрый старт

Установите пакет, затем загрузите файл PSD или PSB, просмотрите его слои и сохраните его обратно:

git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet build
using Aspose.PSD.FileFormats.Psd;

using var image = (PsdImage)Image.Load("input.psd");
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}, Layers: {image.Layers.Length}");

foreach (var layer in image.Layers)
{
    Console.WriteLine($"  {layer.Name}: {layer.Bounds}");
}

image.Save("output.psd");

Поддерживаемые форматы

ФорматРасширениеЧтениеЗапись
Документ Photoshoppsd✓✓
Большой документ Photoshoppsb✓✓

Открытый исходный код и лицензирование

Aspose.PSD FOSS для .NET лицензирована по MIT и может использоваться в коммерческих продуктах без роялти, без водяного знака оценки и без ограничения использования.

Пакет находится в версии 1.0.0 и требует только .NET 10.0 во время выполнения — других сторонних зависимостей нет.


Начало работы

Сопутствующие ресурсы