Akıllı Filtreler Akıllı Nesneler PSD csharp

Akıllı filtreler, bir görüntünün tahribatsız bir şekilde düzenlenmesini sağlamak için kullanılır. Filtre ayarlarını korudukları için yeniden düzenlenebilirler ve gerekirse ayarlanabilir veya görüntüden kaldırılabilirler. Ayrıca, katmanın akıllı bir nesne olması koşuluyla bir veya daha fazla akıllı filtre ekleyebilirsiniz. Bu makale, akıllı filtrelerin nasıl düzenleneceğini ve güncelleneceğini ve GaussianBlurSmartFilter, AddNoiseSmartFilter gibi yeni filtrelerin C# dilinde programlı olarak bir görüntüye nasıl ekleneceğini kapsar.

PSD Dosyasında Akıllı Filtreler ve Akıllı Nesnelerle Çalışma – C# API Kurulumu

C# .NET’te programlı olarak PSD görüntüleri ile çalışmak için Aspose.PSD for .NET API’sini kurmanız gerekir. İndirilenler bölümünden DLL dosyasını hızlı bir şekilde indirin veya Visual Studio IDE’de NuGet kurulum komutunu kullanın:

PM> Install-Package Aspose.PSD

C#’ta Akıllı Filtreler ve Akıllı Nesneler Ekleme, Düzenleme ve Güncelleme

Aşağıdaki adımları izleyerek bir PSD dosyasındaki akıllı nesneleri düzenleyebilir, güncelleyebilir veya bunlara yeni akıllı filtreler ekleyebilirsiniz:

  • Image sınıfını kullanarak giriş PSD görüntüsünü yükleyin.
  • Giriş dosyasından akıllı nesne katmanını yükleyin.
  • Akıllı filtreyi düzenleyin ve yarıçap, karışım modu, opaklık vb. özelliklerini kontrol edin.
  • Filtre özelliklerini güncelleyin ve Gauss bulanıklığı, Gürültü Ekle vb. gibi yeni akıllı filtreler ekleyin.
  • Çıktı dosyasını güncellenmiş filtrelerle kaydedin ve güncellenen özellikleri kontrol edin.

Aşağıdaki kod parçacığı, C# dilinde programlı olarak bir PSD görüntüsündeki akıllı nesneler üzerinde akıllı filtrelerin nasıl düzenleneceğini, güncelleneceğini veya ekleneceğini gösterir:

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

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

                // akıllı filtreleri düzenle
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // filtre değerlerini kontrol et
                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

                // filtre değerlerini güncelle
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // yeni filtre öğeleri ekle
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // değişiklikleri uygula
                smartObj.SmartFilters.UpdateResourceValues();

                // Filtre uygula
                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];

                // filtre değerlerini kontrol et
                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
            }

Aşağıdaki ekran görüntüsü, yukarıdaki kod parçacığını çalıştırdıktan sonra konsolda üretilen örnek çıktıyı göstermektedir:

Ayrıca, giriş ve çıkış dosyalarını referans olarak bu bağlantıdan indirebilirsiniz.

API Özelliklerini Keşfedin

PSD ve diğer görüntülerle çalışmak için birçok başka sınıf ve özellik vardır. Daha fazla bilgi için belgeler bölümünü ziyaret edebilirsiniz.

Ücretsiz Değerlendirme Lisansı Alın

Ücretsiz geçici lisans talep ederek API’yi herhangi bir değerlendirme sınırlaması olmaksızın değerlendirebilirsiniz.

Çözüm

Bu makalede, C# dilinde programlı olarak bir PSD görüntüsündeki Akıllı Nesneler üzerinde Akıllı Filtreler ile nasıl çalışılacağını öğrendiniz. Bir görüntüdeki mevcut akıllı filtrelerin nasıl düzenleneceğini ve güncelleneceğini ve bir görüntüye GaussianBlurSmartFilter, AddNoiseSmartFilter vb. gibi yeni akıllı filtrelerin nasıl ekleneceğini tartışır. Ayrıca burada dikkat edilmesi gereken nokta, API’nin başka bir araca bağımlı olmaması nedeniyle, bu özellikle çalışmak için herhangi bir Photoshop veya başka bir görüntü işleme uygulaması yüklemenize gerek olmamasıdır. Herhangi bir sorunuz veya endişeniz varsa, lütfen forumdan bize yazın.

Ayrıca bakınız

C#’ta Programlı Olarak Bir Görüntüye İmza Ekleme