Smartfilter Smartobjekte PSD csharp

Intelligente Filter werden verwendet, um die zerstörungsfreie Bearbeitung eines Bildes zu ermöglichen. Sie können erneut bearbeitet werden, da sie die Filtereinstellungen beibehalten und bei Bedarf angepasst oder aus dem Bild entfernt werden können. Darüber hinaus können Sie einen oder mehrere Smartfilter hinzufügen, sofern es sich bei einer Ebene um ein Smartobjekt handelt. In diesem Artikel wird beschrieben, wie Sie intelligente Filter bearbeiten und aktualisieren sowie neue Filter wie GaussianBlurSmartFilter, AddNoiseSmartFilter usw. programmgesteuert in C# zu einem Bild hinzufügen.

Arbeiten mit Smartfiltern und Smartobjekten in der PSD-Datei – Installation der C#-API

Sie müssen die API Aspose.PSD for .NET installieren, um programmgesteuert mit PSD-Bildern in C# .NET zu arbeiten. Laden Sie die DLL-Datei schnell aus dem Download-Bereich herunter oder verwenden Sie den NuGet-Installationsbefehl in der Visual Studio-IDE:

PM> Install-Package Aspose.PSD

Hinzufügen, Bearbeiten und Aktualisieren von Smartfiltern und Smartobjekten in C#

Sie können die Smart-Objekte in einer PSD-Datei bearbeiten, aktualisieren oder neue Smart-Filter hinzufügen, indem Sie die folgenden Schritte ausführen:

  • Laden Sie das PSD-Eingabebild mit der Klasse Image.
  • Laden Sie die Smart-Objekt-Ebene aus der Eingabedatei.
  • Bearbeiten Sie den Smartfilter und überprüfen Sie seine Eigenschaften wie Radius, Mischmodus, Deckkraft usw.
  • Aktualisieren Sie die Filtereigenschaften und fügen Sie neue intelligente Filter wie Gaußscher Weichzeichner, Rauschen hinzufügen usw. hinzu.
  • Speichern Sie die Ausgabedatei mit aktualisierten Filtern und überprüfen Sie die aktualisierten Eigenschaften.

Das folgende Code-Snippet zeigt, wie Sie Smart-Filter für Smart-Objekte in einem PSD-Bild programmgesteuert in C# bearbeiten, aktualisieren oder hinzufügen:

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

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

                // intelligente Filter bearbeiten
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // Filterwerte prüfen
                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

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

                // neue Filterelemente hinzufügen
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // Änderungen übernehmen
                smartObj.SmartFilters.UpdateResourceValues();

                // Filter anwenden
                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];

                // Filterwerte prüfen
                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
            }

Der folgende Screenshot zeigt die Beispielausgabe, die nach der Ausführung des obigen Code-Snippets auf der Konsole erzeugt wird:

Darüber hinaus können Sie die Eingabe- und Ausgabedateien von diesem Link als Referenz herunterladen.

Entdecken Sie API-Funktionen

Es gibt viele andere Klassen und Eigenschaften, um mit der PSD und anderen Bildern zu arbeiten. Weitere Informationen finden Sie im Abschnitt Dokumentation.

Holen Sie sich eine kostenlose Evaluierungslizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie in C# programmgesteuert mit Smartfiltern für Smartobjekte in einem PSD-Bild arbeiten. Es wird erläutert, wie Sie vorhandene Smartfilter in einem Bild bearbeiten und aktualisieren sowie neue Smartfilter wie GaussianBlurSmartFilter, AddNoiseSmartFilter usw. zu einem Bild hinzufügen. Darüber hinaus ist hier bemerkenswert, dass Sie kein Photoshop oder eine andere Bildverarbeitungsanwendung installieren müssen, um mit dieser Funktion zu arbeiten, da die API von keinem anderen Tool abhängig ist. Falls Sie Fragen oder Bedenken haben, schreiben Sie uns bitte im Forum.

Siehe auch

Signatur zu einem Bild programmgesteuert in C# hinzufügen