هل سبق لك أن لاحظت كيف تبدو بعض الصور على الإنترنت ساطعة للغاية ، أو أن الألوان ليست صحيحة تمامًا؟ هذا بسبب ظاهرة تسمى تأثير التشبع. في هذه المقالة ، سوف نتعلم كيفية تحقيق تأثير التشبع باستخدام مصفوفة ألوان SVG في #C.
أولاً ، سنتعرف على تأثير التشبع ونلقي نظرة على واجهة برمجة تطبيقات C# SVG لتطبيق مرشح مصفوفة ألوان SVG. بعد ذلك ، سنتعرف على خطوات كيفية إصلاح تأثير التشبع باستخدام مصفوفة الألوان لضبط الألوان في الصورة. أخيرًا ، سنوفر روابط مفيدة لمزيد من التحسينات. اذا هيا بنا نبدأ!
تتناول هذه المقالة الموضوعات التالية:
- ما هو تأثير التشبع ومصفوفة ألوان SVG
- C# SVG API لتأثير التشبع باستخدام Color Matrix
- كيفية استخدام مصفوفة ألوان SVG لتأثير التشبع
- إنشاء تأثير التشبع باستخدام Color Matrix في #C
ما هو تأثير التشبع ومصفوفة ألوان SVG
تأثير التشبع هو تقنية شائعة لمعالجة الصور تُستخدم لجعل الصورة تبدو أكثر حيوية. يصف شدة اللون.
تأثير التشبع ناتج عن الطريقة التي تعالج بها أدمغتنا اللون. عندما نرى صورة ، يقوم دماغنا تلقائيًا بضبط الألوان لجعلها تبدو أكثر طبيعية. ومع ذلك ، عندما تحتوي الصورة على الكثير من الألوان ، أو إذا كانت الألوان غير متوازنة بشكل متساوٍ ، فإن دماغنا يواجه صعوبة في معالجة الصورة ، مما قد يتسبب في تأثير التشبع.
يمكننا تحقيق تأثير التشبع باستخدام عنصر مرشح SVG . يوفر مرشحًا للتحولات اللونية لتغيير الألوان بناءً على مصفوفة التحويل.
واجهة برمجة تطبيقات C# SVG لتأثير التشبع باستخدام مصفوفة الألوان
تأثير التشبع هو حالة خاصة لاستخدام مصفوفة الألوان. سنستخدم Aspose.SVG for .NET API لاستخدام عملية التشبع لمرشح البدائي. تسمح واجهة برمجة التطبيقات بتحميل ملفات SVG وتحليلها وعرضها وإنشائها وتحويلها إلى تنسيقات شائعة دون أي تبعيات للبرامج.
يرجى إما تنزيل DLL الخاص بواجهة برمجة التطبيقات أو تثبيته باستخدام NuGet.
PM> Install-Package Aspose.SVG
كيفية استخدام مصفوفة ألوان SVG لتأثير التشبع
تطبق تحويل مصفوفة على قنوات RGBA لكل بكسل في صورة الإدخال. يمكننا استخدام عنصر SVG لتأثير التشبع باتباع الخطوات الواردة أدناه:
- حدد وثيقة SVG واضبط عنوان URL لمساحة اسم SVG.
- قم بإنشاء عنصر صورة وعنصر تصفية.
- قم بإلحاق العنصر الرسومي.
- قم بإنشاء عنصر feColorMatrix وإضافته إلى عنصر التصفية.
- احفظ صورة SVG الناتجة.
يصف القسم التالي كيفية تحويل هذه الخطوات إلى كود #C وإنشاء تأثير تشبع في SVG.
إنشاء تأثير التشبع باستخدام مصفوفة الألوان في C#
يمكننا إنشاء تأثير تشبع باستخدام عنصر باتباع الخطوات الواردة أدناه:
- أولاً ، قم بإنشاء مثيل لفئة SVGDocument.
- بعد ذلك ، قم بالوصول إلى عنصر SVG الجذر وحدد عنوان URL لمساحة الاسم لـ SVG.
- بعد ذلك ، قم بتهيئة كائن الفئة SVGImageElement.
- في غضون ذلك ، قم بتعيين مسار صورة وخصائص أخرى لـ SVGImageElement.
- بعد ذلك ، قم بتعريف كائن فئة SVGDefsElement وأضفه إلى عنصر الجذر.
- ثم قم بإنشاء كائن فئة SVGFilterElement وأضفه إلى SVGDefsElement.
- بعد ذلك ، حدد SVGFEColorMatrixElement كائن الفئة.
- ثم قم بتعيين السمات المطلوبة من نوع ig: saturate
- بعد ذلك ، أضف SVGFEColorMatrixElement إلى SVGFilterElement.
- أخيرًا ، احفظ ملف SVG الناتج باستخدام طريقة Save ().
يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء تأثير تشبع بمصفوفة الألوان في #C.
// يوضح مثال الكود هذا كيفية إنشاء تأثير تشبع بمصفوفة الألوان في #C.
// قم بإنشاء مثيل من SVGDocument
var document = new SVGDocument();
// الحصول على عنصر svg الجذر للمستند
var svgElement = document.RootElement;
const string SvgNamespace = "http://www.w3.org/2000/svg";
var imageElement = (SVGImageElement)document.CreateElementNS(SvgNamespace, "image");
imageElement.Href.BaseVal = @"C:\Files\lighthouse.jpg";
imageElement.Height.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Width.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Height.BaseVal.Value = 640;
imageElement.Width.BaseVal.Value = 480;
imageElement.X.BaseVal.Value = 20;
imageElement.Y.BaseVal.Value = 20;
imageElement.SetAttribute("filter", "url(#CM)");
svgElement.AppendChild(imageElement);
// قم بإنشاء عنصر defs وأضفه إلى svgElement
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);
// إنشاء عنصر تصفية وإضافة defsElement
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);
// قم بإنشاء عنصر feColorMatrix
var feColorMatrixElement = (SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "2");
filterElement.Id = "CM";
// إلحاق عنصر التصفية
filterElement.AppendChild(feColorMatrixElement);
// احفظ مستند SVG
document.Save("C:\\Files\\ColorEffect.svg");
<svg xmlns="http://www.w3.org/2000/svg">
<image href="file:///C:/Files/lighthouse.jpg" height="640" width="480" x="20" y="20" filter="url(#CM)"/>
<defs>
<filter id="CM">
<feColorMatrix in="SourceGraphic" type="saturate" values="2"/>
</filter>
</defs>
</svg>
احصل على ترخيص API مجاني
يمكنك الحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود التقييم.
استنتاج
في هذه المقالة ، تعرفت على تأثير التشبع على الصور. لقد رأينا أيضًا كيفية تطبيق تأثير لون التشبع باستخدام مرشحات مصفوفة ألوان SVG في #C. بالإضافة إلى ذلك ، يمكنك معرفة المزيد حول Aspose.SVG for .NET باستخدام التوثيق واستكشاف الميزات المختلفة التي تقدمها API. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.