Inteligentní filtry Inteligentní objekty PSD csharp

Inteligentní filtry se používají k umožnění nedestruktivní úpravy obrázku. Lze je znovu upravovat, protože si zachovávají nastavení filtru a v případě potřeby je lze upravit nebo z obrázku odstranit. Navíc můžete přidat jeden nebo více inteligentních filtrů za předpokladu, že vrstva je inteligentní objekt. Tento článek popisuje, jak upravit a aktualizovat inteligentní filtry a také přidat nové filtry, jako je GaussianBlurSmartFilter, AddNoiseSmartFilter atd., do obrázku programově v C#.

Práce s inteligentními filtry a inteligentními objekty v souboru PSD – Instalace C# API

Abyste mohli programově pracovat s obrazy PSD v C# .NET, musíte si nainstalovat Aspose.PSD for .NET API. Rychle si stáhněte jeho soubor DLL ze sekce Stahování nebo použijte instalační příkaz NuGet v IDE sady Visual Studio:

PM> Install-Package Aspose.PSD

Přidat, upravit a aktualizovat inteligentní filtry a inteligentní objekty v C#

Můžete upravit, aktualizovat nebo přidat nové inteligentní filtry k inteligentním objektům v souboru PSD podle následujících kroků:

  • Načtěte vstupní obrázek PSD pomocí třídy Image.
  • Načtěte vrstvu inteligentního objektu ze vstupního souboru.
  • Upravte inteligentní filtr a zkontrolujte jeho vlastnosti, jako je poloměr, režim prolnutí, krytí atd.
  • Aktualizujte vlastnosti filtru a přidejte nové inteligentní filtry, jako je Gaussovské rozostření, Přidat šum atd.
  • Uložte výstupní soubor s aktualizovanými filtry a zkontrolujte aktualizované vlastnosti.

Níže uvedený úryvek kódu ukazuje, jak upravit, aktualizovat nebo přidat inteligentní filtry na inteligentní objekty v obrázku PSD programově v C#:

            var sourceFilter = "r2_SmartFilters.psd";
            var outputPsd = "output.psd";

            using (var image = (PsdImage)Image.Load(sourceFilter))
            {
                SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

                // upravit chytré filtry
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // zkontrolujte hodnoty filtru
                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

                // aktualizovat hodnoty filtru
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // přidat nové položky filtru
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // aplikuj změny
                smartObj.SmartFilters.UpdateResourceValues();

                // Použijte 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];

                // zkontrolujte hodnoty filtru
                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
            }

Níže uvedený snímek obrazovky ukazuje ukázkový výstup vytvořený na konzole po provedení výše uvedeného fragmentu kódu:

Kromě toho si můžete stáhnout vstupní a výstupní soubory z tento odkaz pro referenci.

Prozkoumejte funkce API

Existuje mnoho dalších tříd a vlastností pro práci s PSD a dalšími obrázky. Pro více informací můžete navštívit sekci dokumentace.

Získejte bezplatnou zkušební licenci

Rozhraní API můžete vyhodnotit bez jakýchkoli omezení hodnocení, když požádáte o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili pracovat s inteligentními filtry na inteligentních objektech v obrázku PSD programově v C#. Pojednává o tom, jak upravit a aktualizovat stávající inteligentní filtry v obrázku, a také přidat do obrázku nové inteligentní filtry, jako je GaussianBlurSmartFilter, AddNoiseSmartFilter atd. Dále je zde pozoruhodné, že pro práci s touto funkcí nepotřebujete instalovat žádný Photoshop ani jinou aplikaci pro zpracování obrázků, protože API není závislé na žádném jiném nástroji. V případě jakýchkoli dotazů nebo obav nám napište na fórum.

Viz také

Přidat podpis k obrázku programově v C#