Smart Filters Smart Objects PSD csharp

Filter pintar digunakan untuk mengaktifkan pengeditan gambar yang tidak merusak. Mereka dapat diedit ulang karena mempertahankan pengaturan filter dan dapat disesuaikan atau dihapus dari gambar jika diperlukan. Selain itu, Anda dapat menambahkan satu atau lebih filter pintar asalkan lapisannya adalah objek pintar. Artikel ini membahas cara mengedit dan memperbarui filter pintar serta menambahkan filter baru seperti GaussianBlurSmartFilter, AddNoiseSmartFilter, dll. ke gambar secara terprogram di C#.

Bekerja dengan Filter Cerdas dan Objek Cerdas di File PSD – Instalasi C# API

Anda perlu menginstal Aspose.PSD for .NET API untuk bekerja dengan gambar PSD secara terprogram di C# .NET. Unduh file DLL dengan cepat dari bagian Unduhan atau gunakan perintah penginstalan NuGet di Visual Studio IDE:

PM> Install-Package Aspose.PSD

Tambahkan, Edit, dan Perbarui Filter Cerdas dan Objek Cerdas di C#

Anda dapat mengedit, memperbarui, atau menambahkan filter pintar baru ke objek pintar di file PSD dengan mengikuti langkah-langkah di bawah ini:

  • Muat gambar PSD masukan menggunakan kelas Image.
  • Muat lapisan objek pintar dari file input.
  • Edit filter pintar dan periksa propertinya seperti radius, mode campuran, opacity, dll.
  • Perbarui properti filter dan tambahkan filter pintar baru seperti Gaussian blur, Add Noise, dll.
  • Simpan file keluaran dengan filter yang diperbarui dan periksa properti yang diperbarui.

Cuplikan kode di bawah ini menunjukkan cara mengedit, memperbarui, atau menambahkan filter pintar pada objek pintar di gambar PSD secara terprogram di C#:

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

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

                // edit filter pintar
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // periksa nilai filter
                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

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

                // tambahkan item filter baru
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // menerapkan perubahan
                smartObj.SmartFilters.UpdateResourceValues();

                // Terapkan 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];

                // periksa nilai filter
                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
            }

Tangkapan layar di bawah ini menunjukkan contoh keluaran yang dihasilkan di konsol setelah menjalankan cuplikan kode di atas:

Selain itu, Anda dapat mengunduh file masukan dan keluaran dari tautan ini untuk referensi.

Jelajahi Fitur API

Ada banyak kelas dan properti lain untuk bekerja dengan PSD dan gambar lainnya. Anda dapat mengunjungi bagian dokumentasi untuk informasi lebih lanjut.

Dapatkan Lisensi Evaluasi Gratis

Anda dapat mengevaluasi API tanpa batasan evaluasi apa pun dengan meminta lisensi sementara gratis.

Kesimpulan

Dalam artikel ini, Anda telah mempelajari cara bekerja dengan Filter Cerdas pada Objek Cerdas dalam gambar PSD secara terprogram dalam C#. Ini membahas cara mengedit dan memperbarui filter pintar yang ada di gambar, serta menambahkan filter pintar baru seperti GaussianBlurSmartFilter, AddNoiseSmartFilter, dll. ke gambar. Selain itu, perlu diperhatikan di sini bahwa Anda tidak perlu menginstal Photoshop apa pun, atau aplikasi pengolah gambar lainnya untuk bekerja dengan fitur ini karena API tidak bergantung pada alat lain. Jika Anda memiliki pertanyaan atau masalah, silakan kirim email kepada kami di forum.

Lihat juga

Tambahkan Tanda Tangan ke Gambar Secara Terprogram di C#