Filtri intelligenti Oggetti avanzati PSD csharp

I filtri intelligenti vengono utilizzati per abilitare la modifica non distruttiva di un’immagine. Sono rieditabili in quanto mantengono le impostazioni del filtro e possono essere regolati o rimossi dall’immagine, se necessario. Inoltre, puoi aggiungere uno o più filtri intelligenti a condizione che un livello sia un oggetto intelligente. Questo articolo illustra come modificare e aggiornare i filtri intelligenti, nonché aggiungere nuovi filtri come GaussianBlurSmartFilter, AddNoiseSmartFilter e così via a un’immagine a livello di codice in C#.

Lavora con filtri intelligenti e oggetti avanzati in file PSD – Installazione API C#

È necessario installare l’API Aspose.PSD for .NET per lavorare con le immagini PSD a livello di codice in C# .NET. Scarica rapidamente il suo file DLL dalla sezione Download o usa il comando di installazione NuGet nell’IDE di Visual Studio:

PM> Install-Package Aspose.PSD

Aggiungi, modifica e aggiorna filtri intelligenti e oggetti avanzati in C#

Puoi modificare, aggiornare o aggiungere nuovi filtri intelligenti agli oggetti intelligenti in un file PSD seguendo i passaggi seguenti:

  • Carica l’immagine PSD di input utilizzando la classe Image.
  • Carica il livello dell’oggetto intelligente dal file di input.
  • Modifica il filtro intelligente e controlla le sue proprietà come raggio, modalità di fusione, opacità, ecc.
  • Aggiorna le proprietà dei filtri e aggiungi nuovi filtri intelligenti come sfocatura gaussiana, Aggiungi disturbo, ecc.
  • Salva il file di output con i filtri aggiornati e controlla le proprietà aggiornate.

Il frammento di codice seguente mostra come modificare, aggiornare o aggiungere filtri intelligenti su oggetti intelligenti in un’immagine PSD a livello di codice in C#:

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

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

                // modificare i filtri intelligenti
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // controllare i valori del filtro
                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

                // aggiornare i valori del filtro
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // aggiungere nuovi elementi filtro
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // applica i cambiamenti
                smartObj.SmartFilters.UpdateResourceValues();

                // Applicare filtri
                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];

                // controllare i valori del filtro
                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
            }

Lo screenshot seguente mostra l’output di esempio prodotto sulla console dopo aver eseguito lo snippet di codice sopra:

Inoltre, puoi scaricare i file di input e output da questo link come riferimento.

Esplora le funzionalità dell’API

Ci sono molte altre classi e proprietà per lavorare con il PSD e altre immagini. Puoi visitare la sezione documentazione per ulteriori informazioni.

Ottieni una licenza di valutazione gratuita

Puoi valutare l’API senza alcuna limitazione di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato a utilizzare i filtri avanzati su oggetti avanzati in un’immagine PSD a livello di codice in C#. Spiega come modificare e aggiornare i filtri intelligenti esistenti in un’immagine, nonché aggiungere nuovi filtri intelligenti come GaussianBlurSmartFilter, AddNoiseSmartFilter, ecc. a un’immagine. Inoltre, è degno di nota qui che non è necessario installare alcun Photoshop o qualsiasi altra applicazione di elaborazione delle immagini per lavorare con questa funzione perché l’API non dipende da nessun altro strumento. In caso di domande o dubbi, scrivici al forum.

Guarda anche

Aggiungi firma a un’immagine a livello di codice in C#