Smarta filter Smarta objekt PSD csharp

Smarta filter används för att möjliggöra oförstörande redigering av en bild. De kan redigeras om eftersom de behåller filterinställningarna och kan justeras eller tas bort från bilden om det behövs. Dessutom kan du lägga till ett eller flera smarta filter förutsatt att ett lager är ett smart objekt. Den här artikeln tar upp hur du redigerar och uppdaterar smarta filter samt lägger till nya filter som GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. till en bild programmatiskt i C#.

Arbeta med smarta filter och smarta objekt i PSD-fil – C# API-installation

Du måste installera Aspose.PSD for .NET API för att arbeta med PSD-bilder programmatiskt i C# .NET. Ladda snabbt ner dess DLL-fil från avsnittet Nedladdningar eller använd installationskommandot NuGet i Visual Studio IDE:

PM> Install-Package Aspose.PSD

Lägg till, redigera och uppdatera smarta filter och smarta objekt i C#

Du kan redigera, uppdatera eller lägga till nya smarta filter till smarta objekt i en PSD-fil genom att följa stegen nedan:

  • Ladda den inmatade PSD-bilden med klassen Image.
  • Ladda det smarta objektlagret från inmatningsfilen.
  • Redigera det smarta filtret och kontrollera dess egenskaper som radie, blandningsläge, opacitet, etc.
  • Uppdatera filteregenskaper och lägg till nya smarta filter som Gaussisk oskärpa, Lägg till brus, etc.
  • Spara utdatafilen med uppdaterade filter och kontrollera uppdaterade egenskaper.

Kodavsnittet nedan visar hur man redigerar, uppdaterar eller lägger till smarta filter på smarta objekt i en PSD-bild programmatiskt i C#:

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

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

                // redigera smarta filter
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // kontrollera filtervärden
                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

                // uppdatera filtervärden
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // lägga till nya filterobjekt
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // applicera förändringar
                smartObj.SmartFilters.UpdateResourceValues();

                // Använd filter
                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];

                // kontrollera filtervärden
                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
            }

Skärmdumpen nedan visar exempelutdata som produceras på konsolen efter att ha kört ovanstående kodavsnitt:

Dessutom kan du ladda ner in- och utdatafilerna från den här länken för referens.

Utforska API-funktioner

Det finns många andra klasser och egenskaper för att fungera med PSD och andra bilder. Du kan besöka avsnittet dokumentation för mer information.

Skaffa en gratis utvärderingslicens

Du kan utvärdera API:t utan några utvärderingsbegränsningar genom att begära en gratis temporär licens.

Slutsats

I den här artikeln har du lärt dig hur du arbetar med smarta filter på smarta objekt i en PSD-bild programmatiskt i C#. Den diskuterar hur man redigerar och uppdaterar befintliga smarta filter i en bild, samt lägger till nya smarta filter som GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. till en bild. Dessutom är det anmärkningsvärt här att du inte behöver installera något Photoshop eller något annat bildbehandlingsprogram för att arbeta med den här funktionen eftersom API:et inte är beroende av något annat verktyg. Om du har några frågor eller funderingar, skriv till oss på forumet.

Se även

Lägg till signatur till en bild programmatiskt i C#