Введение
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 buildusing 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");
Поддерживаемые форматы
| Формат | Расширение | Чтение | Запись |
|---|---|---|---|
| Документ Photoshop | psd | ✓ | ✓ |
| Большой документ Photoshop | psb | ✓ | ✓ |
Открытый исходный код и лицензирование
Aspose.PSD FOSS для .NET лицензирована по MIT и может использоваться в коммерческих продуктах без роялти, без водяного знака оценки и без ограничения использования.
Пакет находится в версии 1.0.0 и требует только .NET 10.0 во время выполнения — других сторонних зависимостей нет.