
Inteligentne filtry umożliwiają nieniszczącą edycję obrazu. Można je ponownie edytować, ponieważ zachowują ustawienia filtra i w razie potrzeby można je dostosować lub usunąć z obrazu. Co więcej, możesz dodać jeden lub więcej inteligentnych filtrów, pod warunkiem, że warstwa jest obiektem inteligentnym. W tym artykule opisano, jak edytować i aktualizować inteligentne filtry, a także dodawać nowe filtry, takie jak GaussianBlurSmartFilter, AddNoiseSmartFilter itp. do obrazu programowo w języku C#.
- Praca z inteligentnymi filtrami i inteligentnymi obiektami w pliku PSD – instalacja C# API
- Dodawaj, edytuj i aktualizuj inteligentne filtry i inteligentne obiekty w języku C#
Praca z inteligentnymi filtrami i inteligentnymi obiektami w pliku PSD – instalacja C# API
Musisz zainstalować Aspose.PSD for .NET API, aby programowo pracować z obrazami PSD w C# .NET. Szybko pobierz jego plik DLL z sekcji Downloads lub użyj polecenia instalacyjnego NuGet w Visual Studio IDE:
PM> Install-Package Aspose.PSD
Dodawaj, edytuj i aktualizuj inteligentne filtry i inteligentne obiekty w języku C#
Możesz edytować, aktualizować lub dodawać nowe inteligentne filtry do inteligentnych obiektów w pliku PSD, wykonując poniższe czynności:
- Załaduj wejściowy obraz PSD, używając klasy Image.
- Załaduj warstwę obiektów inteligentnych z pliku wejściowego.
- Edytuj inteligentny filtr i sprawdź jego właściwości, takie jak promień, tryb mieszania, krycie itp.
- Zaktualizuj właściwości filtrów i dodaj nowe inteligentne filtry, takie jak rozmycie gaussowskie, dodawanie szumu itp.
- Zapisz plik wyjściowy ze zaktualizowanymi filtrami i sprawdź zaktualizowane właściwości.
Poniższy fragment kodu pokazuje, jak programowo edytować, aktualizować lub dodawać inteligentne filtry do inteligentnych obiektów w obrazie PSD w języku C#:
var sourceFilter = "r2_SmartFilters.psd";
var outputPsd = "output.psd";
using (var image = (PsdImage)Image.Load(sourceFilter))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
// edytuj inteligentne filtry
GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// sprawdź wartości filtrów
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
// zaktualizuj wartości filtrów
gaussianBlur.Radius = 1;
gaussianBlur.BlendMode = BlendMode.Divide;
gaussianBlur.Opacity = 75;
gaussianBlur.IsEnabled = false;
AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
addNoise.Distribution = NoiseDistribution.Uniform;
// dodaj nowe elementy filtra
var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
filters.Add(new GaussianBlurSmartFilter());
filters.Add(new AddNoiseSmartFilter());
smartObj.SmartFilters.Filters = filters.ToArray();
// zatwierdź zmiany
smartObj.SmartFilters.UpdateResourceValues();
// Zastosuj filtry
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];
// sprawdź wartości filtrów
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
}
Poniższy zrzut ekranu pokazuje przykładowe wyjście wygenerowane na konsoli po wykonaniu powyższego fragmentu kodu:

Ponadto możesz pobrać pliki wejściowe i wyjściowe z tego łącza w celach informacyjnych.
Poznaj funkcje API
Istnieje wiele innych klas i właściwości do pracy z plikami PSD i innymi obrazami. Możesz odwiedzić sekcję dokumentacja, aby uzyskać więcej informacji.
Uzyskaj bezpłatną licencję ewaluacyjną
Możesz ocenić interfejs API bez żadnych ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.
Wniosek
W tym artykule nauczyłeś się programowo pracować z filtrami inteligentnymi na obiektach inteligentnych w obrazie PSD w języku C#. Omówiono w nim, jak edytować i aktualizować istniejące inteligentne filtry w obrazie, a także dodawać nowe inteligentne filtry, takie jak GaussianBlurSmartFilter, AddNoiseSmartFilter itp. do obrazu. Co więcej, warto zauważyć, że do pracy z tą funkcją nie trzeba instalować żadnego programu Photoshop ani żadnej innej aplikacji do przetwarzania obrazu, ponieważ interfejs API nie jest zależny od żadnego innego narzędzia. Jeśli masz jakiekolwiek pytania lub wątpliwości, napisz do nas na forum.