Розумні фільтри використовуються для неруйнівного редагування зображення. Їх можна редагувати повторно, оскільки вони зберігають налаштування фільтра, і за потреби їх можна налаштувати або видалити із зображення. Крім того, ви можете додати один або кілька смарт-фільтрів, якщо шар є смарт-об’єктом. У цій статті розповідається про те, як редагувати та оновлювати розумні фільтри, а також додавати нові фільтри, такі як GaussianBlurSmartFilter, AddNoiseSmartFilter тощо, до зображення програмним шляхом у C#.
- Робота зі смарт-фільтрами та смарт-об’єктами у файлі PSD – встановлення C# API
- Додавання, редагування та оновлення смарт-фільтрів і смарт-об’єктів у C#
Робота зі смарт-фільтрами та смарт-об’єктами у файлі PSD – встановлення C# API
Вам потрібно встановити Aspose.PSD for .NET API, щоб програмно працювати із зображеннями PSD у C# .NET. Швидко завантажте його DLL-файл із розділу завантажень або скористайтеся командою інсталяції NuGet у Visual Studio IDE:
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 не залежить від жодного іншого інструменту. Якщо у вас виникнуть запитання чи проблеми, напишіть нам на форум.