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
- Lägg till, redigera och uppdatera smarta filter och smarta objekt 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.