การผสมอัลฟ่าใน C#

คอมพิวเตอร์กราฟิก โดยเฉพาะในเกม ต้องใช้ความใส่ใจในรายละเอียดอย่างมาก ทุกพิกเซลมีค่า และไม่ควรมีเอฟเฟ็กต์ภาพที่สั่นไหว นี่คือที่มาของการผสมอัลฟ่า เอ็นจิ้นกราฟิกเกือบทั้งหมดในปัจจุบันใช้การผสมอัลฟ่าบางรูปแบบเพื่อสร้างภาพที่สมจริงยิ่งขึ้น สำหรับการเปลี่ยนระหว่างวัตถุทั้งสองอย่างราบรื่น สีที่เกี่ยวข้องของวัตถุทั้งสองจะรวมกันและซ้อนทับกันบางส่วน ในบทความนี้ เราจะมาเรียนรู้วิธีการใช้การผสมอัลฟ่าใน C#

หัวข้อต่อไปนี้จะครอบคลุมในบทความนี้:

  1. การผสมอัลฟ่าคืออะไร
  2. C# Alpha Blending API
  3. วิธีใช้การผสมอัลฟ่า
  4. โหมดคอมโพสิตในการผสมอัลฟ่า

การผสมอัลฟ่าคืออะไร?

การผสมแบบอัลฟ่าเป็นเทคนิคสำหรับการรวมสองสีหรือระดับความโปร่งใสโดยใช้ความทึบของแต่ละสีเพื่อสร้างหนึ่งในสาม จะช่วยให้การเปลี่ยนทีละน้อยและผสมสีในภาพของคุณ การผสมแบบอัลฟ่ามักใช้สำหรับเอฟเฟกต์พื้นหลังและความโปร่งใส

ในคอมพิวเตอร์กราฟิก การผสมอัลฟ่าคือกระบวนการรวมภาพสองภาพเข้าด้วยกันเพื่อให้ภาพเหล่านั้นปรากฏเป็นภาพเดียว ผลลัพธ์ที่ได้คือภาพเดียวที่บางพื้นที่ดูโปร่งใส อัลกอริทึมทำงานโดยการคำนวณปริมาณความโปร่งใสระหว่างสีสองพิกเซล มันผสมผสานสองภาพโดยไม่ต้องสัมผัสพิกเซลใด ๆ

C# Alpha Blending API - ดาวน์โหลดฟรี

สำหรับการนำอัลฟ่าเบลนด์ไปใช้ใน C# เราจะใช้ API Aspose.Drawing for .NET เป็นไลบรารีกราฟิก 2D ข้ามแพลตฟอร์มสำหรับการวาดข้อความ รูปทรงเรขาคณิต และรูปภาพโดยทางโปรแกรม อนุญาตให้โหลด บันทึก และจัดการ รูปแบบไฟล์ที่รองรับ

โปรด ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet

PM> Install-Package Aspose.Drawing

ใช้การผสมอัลฟ่าโดยใช้ C

วิธีทั่วไปในการนำ Alpha Blending ไปใช้ใน C# คือการใช้เมธอด Color.FromArgb() เราสามารถใช้การผสมอัลฟาโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก สร้างอินสแตนซ์ของคลาสบิตแมป
  2. จากนั้น สร้างอ็อบเจกต์คลาสกราฟิกโดยใช้เมธอด Color.FromArgb() พร้อมพารามิเตอร์อัลฟ่าแชนเนล
  3. จากนั้นกำหนดวัตถุคลาส SolidBrush ด้วยสีและขนาดที่ระบุ
  4. หลังจากนั้นเรียกเมธอด FillEllipse() เพื่อวาดวงรีที่เติมข้อมูล
  5. ทำซ้ำขั้นตอนด้านบนเพื่อเพิ่มวงรีที่ทับซ้อนกันที่มีสีต่างกันเพื่อสร้างสีใหม่
  6. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด 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 #

ใช้การผสมอัลฟ่าโดยใช้ C #

โหมดคอมโพสิตในการผสมอัลฟ่าโดยใช้ C#

เรายังสามารถใช้โหมดคอมโพสิตเพื่อควบคุมการผสมอัลฟาโดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก สร้างอินสแตนซ์ของคลาสบิตแมป
  2. จากนั้น สร้างอ็อบเจกต์คลาสกราฟิกโดยใช้เมธอด Color.FromArgb() พร้อมพารามิเตอร์อัลฟ่าแชนเนล
  3. จากนั้นกำหนดวัตถุคลาส SolidBrush ด้วยสีและขนาดที่ระบุ
  4. ถัดไป ระบุ CompositingMode และ CompositingQuality สำหรับออบเจกต์กราฟิก
  5. หลังจากนั้นเรียกเมธอด FillEllipse() เพื่อวาดวงรีที่เติมข้อมูล
  6. ทำซ้ำขั้นตอนด้านบนเพื่อเพิ่มวงรีที่ทับซ้อนกันที่มีสีต่างกันเพื่อสร้างสีใหม่
  7. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด 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.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");
โหมด SourceCopy Compsite ในการผสม Alpha โดยใช้ C#

โหมด SourceCopy Compsite ในการผสม Alpha โดยใช้ C#

เรายังสามารถใช้โหมดรวม SourceOver โดยใช้รหัสต่อไปนี้ในขั้นตอนที่ # 4

graphics.CompositingMode = CompositingMode.SourceOver;
โหมด SourceOver Compsite ในการผสมอัลฟ่าโดยใช้ C#

โหมด SourceOver Compsite ในการผสมอัลฟ่าโดยใช้ C#

รับใบอนุญาตชั่วคราวฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อลองใช้ Aspose.Drawing for .NET โดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีใช้เทคนิคการผสมอัลฟ่าโดยทางโปรแกรมใน C# นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Drawing for .NET โดยใช้ เอกสารประกอบ และสำรวจคุณสมบัติต่างๆ ที่ API รองรับ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย