Смарт-фильтры используются для неразрушающего редактирования изображения. Их можно редактировать повторно, поскольку они сохраняют настройки фильтра и при необходимости могут быть изменены или удалены с изображения. Кроме того, вы можете добавить один или несколько смарт-фильтров, если слой является смарт-объектом. В этой статье рассказывается, как редактировать и обновлять интеллектуальные фильтры, а также добавлять новые фильтры, такие как GaussianBlurSmartFilter, AddNoiseSmartFilter и т. д., к изображению программным способом на C#.
- Работа со смарт-фильтрами и смарт-объектами в PSD-файле — установка C# API
- Добавление, редактирование и обновление смарт-фильтров и смарт-объектов в C#
Работа со смарт-фильтрами и смарт-объектами в PSD-файле — установка C# API
Вам необходимо установить Aspose.PSD for .NET API для программной работы с изображениями PSD в C# .NET. Быстро загрузите его DLL-файл из раздела «Загрузки» или используйте команду установки NuGet в интегрированной среде разработки Visual Studio:
PM> Install-Package Aspose.PSD
Добавление, редактирование и обновление смарт-фильтров и смарт-объектов в C#
Вы можете редактировать, обновлять или добавлять новые смарт-фильтры к смарт-объектам в PSD-файле, выполнив следующие действия:
- Загрузите исходное PSD-изображение с помощью класса Image.
- Загрузите слой смарт-объекта из входного файла.
- Отредактируйте смарт-фильтр и проверьте его свойства, такие как радиус, режим наложения, непрозрачность и т. д.
- Обновите свойства фильтра и добавьте новые интеллектуальные фильтры, такие как размытие по Гауссу, добавление шума и т. д.
- Сохраните выходной файл с обновленными фильтрами и проверьте обновленные свойства.
В приведенном ниже фрагменте кода показано, как программно редактировать, обновлять или добавлять смарт-фильтры к смарт-объектам в изображении PSD на C#:
var sourceFilter = "r2_SmartFilters.psd";
var outputPsd = "output.psd";
using (var image = (PsdImage)Image.Load(sourceFilter))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
// редактировать умные фильтры
GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// проверить значения фильтра
Console.WriteLine("Radius: " + gaussianBlur.Radius); // 3.1
Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Dissolve
Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 90d
Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // true
// обновить значения фильтра
gaussianBlur.Radius = 1;
gaussianBlur.BlendMode = BlendMode.Divide;
gaussianBlur.Opacity = 75;
gaussianBlur.IsEnabled = false;
AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
addNoise.Distribution = NoiseDistribution.Uniform;
// добавить новые элементы фильтра
var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
filters.Add(new GaussianBlurSmartFilter());
filters.Add(new AddNoiseSmartFilter());
smartObj.SmartFilters.Filters = filters.ToArray();
// применять изменения
smartObj.SmartFilters.UpdateResourceValues();
// Применить фильтры
smartObj.SmartFilters.Filters[0].Apply(image.Layers[2]);
smartObj.SmartFilters.Filters[4].ApplyToMask(image.Layers[2]);
image.Save(outputPsd);
}
using (var image = (PsdImage)Image.Load(outputPsd))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
GaussianBlurSmartFilter gaussianBlur = (Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// проверить значения фильтра
Console.WriteLine("\n\n");
Console.WriteLine("Radius: " + gaussianBlur.Radius); // 1d
Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Divide
Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 75d
Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // false
Console.WriteLine(smartObj.SmartFilters.Filters[5] is GaussianBlurSmartFilter); // true
Console.WriteLine(smartObj.SmartFilters.Filters[6] is AddNoiseSmartFilter); // true
}
На приведенном ниже снимке экрана показан пример вывода, созданного на консоли после выполнения приведенного выше фрагмента кода:
Кроме того, вы можете скачать входной и выходной файлы по этой ссылке для справки.
Изучите функции API
Есть много других классов и свойств для работы с PSD и другими изображениями. Вы можете посетить раздел документация для получения дополнительной информации.
Получите бесплатную пробную лицензию
Вы можете оценить API без каких-либо ограничений, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как программно работать со смарт-фильтрами на смарт-объектах в изображении PSD на C#. В нем обсуждается, как редактировать и обновлять существующие интеллектуальные фильтры в изображении, а также добавлять к изображению новые интеллектуальные фильтры, такие как GaussianBlurSmartFilter, AddNoiseSmartFilter и т. д. Кроме того, здесь следует отметить, что вам не нужно устанавливать какой-либо Photoshop или любое другое приложение для обработки изображений для работы с этой функцией, поскольку API не зависит от какого-либо другого инструмента. Если у вас есть какие-либо вопросы или проблемы, напишите нам на форум.
Смотрите также
[Добавить подпись к изображению программно на C#] (https://blog.aspose.com/ru/2022/03/18/sign-image-csharp/)