المرشحات الذكية Smart Objects PSD csharp

تُستخدم المرشحات الذكية لتمكين التحرير غير المدمر للصورة. يمكن إعادة تحريرها لأنها تحتفظ بإعدادات المرشح ويمكن تعديلها أو إزالتها من الصورة إذا لزم الأمر. علاوة على ذلك ، يمكنك إضافة مرشح ذكي واحد أو أكثر بشرط أن تكون الطبقة عبارة عن كائن ذكي. تتناول هذه المقالة كيفية تحرير المرشحات الذكية وتحديثها بالإضافة إلى إضافة عوامل تصفية جديدة مثل GaussianBlurSmartFilter و AddNoiseSmartFilter وما إلى ذلك إلى صورة برمجيًا في C#.

العمل مع المرشحات الذكية والكائنات الذكية في ملف PSD - تثبيت C# API

تحتاج إلى تثبيت Aspose.PSD for .NET API للعمل مع صور PSD برمجيًا في C# .NET. قم بتنزيل ملف DLL الخاص به بسرعة من قسم التنزيلات أو استخدم أمر التثبيت NuGet في Visual Studio IDE:

PM> Install-Package Aspose.PSD

إضافة وتحرير وتحديث المرشحات الذكية والكائنات الذكية في C#

يمكنك تحرير أو تحديث أو إضافة عوامل تصفية ذكية جديدة إلى الكائنات الذكية في ملف PSD باتباع الخطوات التالية:

  • قم بتحميل صورة PSD المدخلة باستخدام فئة صورة.
  • قم بتحميل طبقة الكائن الذكي من ملف الإدخال.
  • قم بتحرير المرشح الذكي وتحقق من خصائصه مثل نصف القطر ووضع المزج والتعتيم وما إلى ذلك.
  • قم بتحديث خصائص المرشح وإضافة عوامل تصفية ذكية جديدة مثل Gaussian blur و Add Noise وما إلى ذلك.
  • احفظ ملف الإخراج باستخدام عوامل التصفية المحدثة وتحقق من الخصائص المحدثة.

يوضح مقتطف الشفرة أدناه كيفية تحرير أو تحديث أو إضافة عوامل تصفية ذكية على الكائنات الذكية في صورة PSD برمجيًا في C#:

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

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

                // تحرير المرشحات الذكية
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // تحقق من قيم التصفية
                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

                // تحديث قيم عامل التصفية
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // إضافة عناصر تصفية جديدة
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // تطبيق التغييرات
                smartObj.SmartFilters.UpdateResourceValues();

                // تطبيق المرشحات
                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];

                // تحقق من قيم التصفية
                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
            }

توضح لقطة الشاشة أدناه إخراج العينة الذي تم إنتاجه على وحدة التحكم بعد تنفيذ مقتطف الشفرة أعلاه:

علاوة على ذلك ، يمكنك تنزيل ملفات الإدخال والإخراج من هذا الرابط كمرجع.

استكشف ميزات API

هناك العديد من الفئات والخصائص الأخرى للعمل مع PSD والصور الأخرى. يمكنك زيارة قسم الوثائق لمزيد من المعلومات.

احصل على رخصة تقييم مجانية

يمكنك تقييم API بدون أي قيود تقييمية عن طريق طلب ترخيص مؤقت مجاني.

استنتاج

في هذه المقالة ، تعلمت كيفية العمل مع المرشحات الذكية على الكائنات الذكية في صورة PSD برمجيًا في C#. يناقش كيفية تحرير المرشحات الذكية الموجودة في صورة ما وتحديثها ، بالإضافة إلى إضافة عوامل تصفية ذكية جديدة مثل GaussianBlurSmartFilter و AddNoiseSmartFilter وما إلى ذلك إلى صورة ما. علاوة على ذلك ، من الجدير بالذكر هنا أنك لست بحاجة إلى تثبيت أي برنامج فوتوشوب أو أي تطبيق معالجة صور آخر للعمل مع هذه الميزة لأن واجهة برمجة التطبيقات لا تعتمد على أي أداة أخرى. في حال كان لديك أي استفسارات أو استفسارات ، يرجى مراسلتنا على المنتدى.

أنظر أيضا

أضف توقيعًا إلى صورة برمجيًا في C#