تتطلب رسومات الكمبيوتر ، خاصة في الألعاب ، قدرًا كبيرًا من الاهتمام بالتفاصيل. كل بكسل مهم ، ويجب ألا تكون هناك تأثيرات بصرية متنافرة. هذا هو المكان الذي يلعب فيه مزج ألفا. تستخدم جميع محركات الرسومات تقريبًا اليوم شكلاً من أشكال مزج ألفا من أجل إنشاء صور أكثر واقعية. للانتقالات السلسة بين كلا الكائنين ، يتم دمج الألوان الخاصة بالكائنين وتداخلها جزئيًا. في هذه المقالة ، سوف نتعلم كيفية تنفيذ مزج ألفا في #C.
سيتم تناول الموضوعات التالية في هذه المقالة:
ما هو مزج ألفا؟
مزج ألفا هو أسلوب لدمج لونين مختلفين ، أو مستويات شفافية ، باستخدام عتامة كل لون لإنتاج لون ثالث. يسمح بانتقالات تدريجية ويمزج الألوان في صورك. غالبًا ما يستخدم مزج ألفا لتأثيرات الخلفية والشفافية.
في رسومات الكمبيوتر ، يعتبر مزج ألفا هو عملية دمج صورتين بحيث تظهران كصورة واحدة. والنتيجة هي صورة واحدة حيث تظهر بعض المناطق شفافة. تعمل الخوارزمية عن طريق حساب مقدار الشفافية بين ألوان ثنائية البكسل. يمزج بين صورتين دون لمس أي بكسل.
C# Alpha Blending API - تنزيل مجاني
لتنفيذ مزج ألفا في #C ، سنستخدم Aspose.Drawing for .NET API. إنها مكتبة رسومات ثنائية الأبعاد عبر الأنظمة الأساسية لرسم النصوص والهندسة والصور برمجيًا. يسمح بتحميل وحفظ ومعالجة تنسيقات الملفات المدعومة.
يرجى إما تنزيل DLL من API أو تثبيته باستخدام NuGet.
PM> Install-Package Aspose.Drawing
تنفيذ مزج ألفا باستخدام #C
الطريقة الأكثر شيوعًا لتنفيذ مزج ألفا في #C هي استخدام طريقة ()Color.FromArgb .يمكننا تنفيذ مزج ألفا برمجيًا باتباع الخطوات الواردة أدناه:
- أولاً ، قم بإنشاء مثيل لفئة Bitmap.
- بعد ذلك ، قم بإنشاء كائن فئة الرسومات باستخدام طريقة ()Color.FromArgb مع معلمة قناة ألفا.
- ثم ، حدد كائن فئة SolidBrush باللون والحجم المحددين.
- بعد ذلك ، قم باستدعاء طريقة ()FillEllipse لرسم قطع ناقص ممتلئ.
- كرر الخطوات المذكورة أعلاه لإضافة المزيد من الأشكال البيضاوية المعبأة بألوان مختلفة لإنشاء ألوان جديدة.
- أخيرًا ، احفظ الصورة الناتجة باستخدام طريقة ()Save.
يوضح نموذج التعليمات البرمجية التالي كيفية تنفيذ مزج ألفا في #C.
// يوضح مثال الكود هذا كيفية تنفيذ مزج ألفا في C#.
// قم بإنشاء صورة نقطية
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// تهيئة الرسومات
Graphics graphics = Graphics.FromImage(bitmap);
// تحديد فرشاة اللون
var solidBrush1 = new SolidBrush(Color.FromArgb(128, 255, 0, 0));
var solidBrush2 = new SolidBrush(Color.FromArgb(128, 0, 255, 0));
var solidBrush3 = new SolidBrush(Color.FromArgb(128, 0, 0, 255));
// ارسم القطع الناقصة
graphics.FillEllipse(solidBrush1, 300, 100, 400, 400);
graphics.FillEllipse(solidBrush2, 200, 300, 400, 400);
graphics.FillEllipse(solidBrush3, 400, 300, 400, 400);
// احفظ الصورة النقطية
bitmap.Save(@"C:\Files\AlphaBlending.png");
الأوضاع المركبة في مزج ألفا باستخدام #C
يمكننا أيضًا استخدام الأوضاع المركبة للتحكم في مزج ألفا باتباع الخطوات الواردة أدناه:
- أولاً ، قم بإنشاء مثيل لفئة Bitmap.
- بعد ذلك ، قم بإنشاء كائن فئة الرسومات باستخدام طريقة ()Color.FromArgb مع معلمة قناة ألفا.
- ثم ، حدد كائن فئة SolidBrush باللون والحجم المحددين.
- بعد ذلك ، حدد CompositingMode و CompositingQuality لكائن الرسومات.
- بعد ذلك ، قم باستدعاء طريقة ()FillEllipse لرسم قطع ناقص ممتلئ.
- كرر الخطوات المذكورة أعلاه لإضافة المزيد من الأشكال البيضاوية المعبأة بألوان مختلفة لإنشاء ألوان جديدة.
- أخيرًا ، احفظ الصورة الناتجة باستخدام طريقة ()Save.
يوضح نموذج التعليمات البرمجية التالي كيفية استخدام وضع compsite للتحكم في مزج ألفا في #C.
// يوضح مثال الكود هذا كيفية تنفيذ مزج ألفا في #C.
// قم بإنشاء صورة نقطية
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// تهيئة الرسومات
Graphics graphics = Graphics.FromImage(bitmap);
// تحديد فرشاة اللون
var solidBrush1 = new SolidBrush(Color.FromArgb(128, 255, 0, 0));
var solidBrush2 = new SolidBrush(Color.FromArgb(128, 0, 255, 0));
var solidBrush3 = new SolidBrush(Color.FromArgb(128, 0, 0, 255));
// اضبط وضع التركيب لتداخل الأشكال البيضاوية ،
// لا يتم مزج ألوان الأشكال البيضاوية.
graphics.CompositingMode = CompositingMode.SourceCopy;
// يتم مزج ألوان الأشكال البيضاوية مع بعضها البعض.
//Graphics.CompositingMode = CompositingMode.SourceOver ؛
// اضبط جودة التركيب لكائن الرسومات.
graphics.CompositingQuality = CompositingQuality.GammaCorrected;
// ارسم القطع الناقصة
graphics.FillEllipse(solidBrush1, 300, 100, 400, 400);
graphics.FillEllipse(solidBrush2, 200, 300, 400, 400);
graphics.FillEllipse(solidBrush3, 400, 300, 400, 400);
// احفظ الصورة النقطية
bitmap.Save(@"C:\Files\AlphaBlending_SourceOver.png");
يمكننا أيضًا استخدام وضع موقع SourceOver باستخدام الكود التالي في الخطوة رقم 4.
graphics.CompositingMode = CompositingMode.SourceOver;
احصل على رخصة مؤقتة مجانية
يمكنك الحصول على ترخيص مؤقت مجاني لتجربة Aspose.Drawing for .NET بدون قيود تقييم.
استنتاج
في هذه المقالة ، تعلمنا كيفية تنفيذ تقنية مزج ألفا برمجيًا في #C. بالإضافة إلى ذلك ، يمكنك معرفة المزيد حول Aspose.Drawing for .NET باستخدام التوثيق واستكشاف الميزات المختلفة التي تدعمها API. في حالة وجود أي غموض ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.