วาดรูปร่างใน C#

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

C# API เพื่อวาดรูปร่าง - ดาวน์โหลดฟรี

ในการวาดรูปร่างประเภทต่างๆ เราจะใช้ Aspose.Imaging for .NET เป็น API การแก้ไขรูปภาพที่น่าทึ่งซึ่งมีคุณสมบัติมากมายในการจัดการกับรูปภาพและสร้างภาพวาด คุณสามารถ ดาวน์โหลด API หรือติดตั้งจาก NuGet

PM> Install-Package Aspose.Imaging

วาดเส้นด้วย C#

ต่อไปนี้เป็นขั้นตอนการวาดเส้นใน C#

  • ขั้นแรก สร้างวัตถุของคลาส BmpOptions และตั้งค่าบิตต่อพิกเซลโดยใช้คุณสมบัติ BitsPerPixel
  • จากนั้นกำหนด StreamSource โดยใช้คุณสมบัติ Source
  • สร้างรูปภาพใหม่และเริ่มต้นด้วยวัตถุ BmpOptions และความสูงและความกว้างของรูปภาพ
  • สร้างวัตถุของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
  • ล้างพื้นผิวของรูปภาพด้วยสีบางส่วนโดยใช้เมธอด Graphics.Clear()
  • วาดเส้นโดยใช้เมธอด Graphics.DrawLine(Pen, int, int, int, int)
  • สร้างและบันทึกภาพโดยใช้เมธอด Image.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดเส้นใน C#

// สร้าง BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// กำหนดคุณสมบัติต้นทางสำหรับอินสแตนซ์ของ BmpOptions
bmpCreateOptions.Source = new StreamSource();

// สร้างอินสแตนซ์ของ Image และ call create method โดยผ่าน
// วัตถุ bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิก
Graphics graphic = new Graphics(image);

// ล้างพื้นผิวภาพด้วยสีขาว
graphic.Clear(Color.White);

// วาดเส้นประโดยระบุวัตถุปากกาที่มีสีน้ำเงินและ
// จุดประสานงาน
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 18, 200, 200);
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 200, 200, 18);

// ลากเส้นต่อเนื่องโดยกำหนดให้วัตถุ Pen มี Solid
// แปรงที่มีสีแดงและโครงสร้างสองจุด
graphic.DrawLine(new Pen(new SolidBrush(Color.Red), 3),
        new Point(18, 18), new Point(18, 200));

// ลากเส้นต่อเนื่องโดยกำหนดให้วัตถุ Pen มี Solid
// แปรงสีขาวและโครงสร้างสองจุด
graphic.DrawLine(new Pen(new SolidBrush(Color.Orange), 3),
        new Point(200, 18), new Point(18, 18));

// บันทึกการเปลี่ยนแปลงทั้งหมด
image.Save("draw_lines.bmp");

ต่อไปนี้เป็นผลลัพธ์ของตัวอย่างโค้ดด้านบน

ลากเส้นด้วยภาษา C#

วาดวงรีโดยใช้ C#

ต่อไปนี้เป็นขั้นตอนการวาดวงรีใน C#

  • ขั้นแรก สร้างวัตถุของคลาส BmpOptions และตั้งค่าบิตต่อพิกเซลโดยใช้คุณสมบัติ BitsPerPixel
  • จากนั้นกำหนด StreamSource โดยใช้คุณสมบัติ Source
  • สร้างรูปภาพใหม่และเริ่มต้นด้วยวัตถุ BmpOptions และความสูงและความกว้างของรูปภาพ
  • สร้างวัตถุของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
  • ล้างพื้นผิวของรูปภาพด้วยสีบางส่วนโดยใช้เมธอด Graphics.Clear()
  • วาดวงรีโดยใช้เมธอด Graphics.DrawEllipse(Pen, Rectangle)
  • สร้างและบันทึกภาพโดยใช้เมธอด Image.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดวงรีบนรูปภาพใน C#

// สร้าง BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// กำหนดคุณสมบัติต้นทางสำหรับอินสแตนซ์ของ BmpOptions
bmpCreateOptions.Source = new StreamSource();

// สร้างอินสแตนซ์ของ Image และ call create method โดยผ่าน
// วัตถุ bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิก
Graphics graphic = new Graphics(image);

// ล้างพื้นผิวภาพด้วยสีขาว
graphic.Clear(Color.White);

// วาดรูปวงรีจุดโดยระบุวัตถุปากกาที่มีสีแดง
// สีและสี่เหลี่ยมผืนผ้าโดยรอบ
graphic.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(60, 40, 70, 120));

// วาดรูปวงรีต่อเนื่องโดยระบุวัตถุปากกาที่มี
// solid brush with blue สีและสี่เหลี่ยมผืนผ้าโดยรอบ
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue), 3),
        new Rectangle(40, 60, 120, 70));

// บันทึกการเปลี่ยนแปลงทั้งหมด
image.Save("draw_ellipse.bmp");

ต่อไปนี้เป็นผลลัพธ์ของตัวอย่างโค้ดด้านบน

วาดวงรีใน C#

วาดส่วนโค้งโดยใช้ C#

ต่อไปนี้เป็นขั้นตอนการวาดส่วนโค้งใน C#

  • ขั้นแรก สร้างวัตถุของคลาส BmpOptions และตั้งค่าบิตต่อพิกเซลโดยใช้คุณสมบัติ BitsPerPixel
  • จากนั้นกำหนด StreamSource โดยใช้คุณสมบัติ Source
  • สร้างรูปภาพใหม่และเริ่มต้นด้วยวัตถุ BmpOptions และความสูงและความกว้างของรูปภาพ
  • สร้างวัตถุของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
  • ล้างพื้นผิวของรูปภาพด้วยสีบางส่วนโดยใช้เมธอด Graphics.Clear()
  • วาดส่วนโค้งโดยใช้เมธอด Graphics.DrawArc(Pen, float x, float y, float width, float height, float startAngle, float sawAngle)
  • สร้างและบันทึกภาพโดยใช้เมธอด Image.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดส่วนโค้งบนรูปภาพใน C#

// สร้าง BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// กำหนดคุณสมบัติต้นทางสำหรับอินสแตนซ์ของ BmpOptions
bmpCreateOptions.Source = new StreamSource();

// สร้างอินสแตนซ์ของ Image และ call create method โดยผ่าน
// วัตถุ bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิก
Graphics graphic = new Graphics(image);

// ล้างพื้นผิวภาพด้วยสีขาว
graphic.Clear(Color.White);

// วาดรูปส่วนโค้งประโดยระบุวัตถุปากกาที่มีสีแดงดำ
// สีและพิกัด ความสูง ความกว้าง มุมเริ่มต้นและสิ้นสุด
int width = 200;
int height = 300;
int startAngle = 45;
int sweepAngle = 270;

// วาดส่วนโค้งไปที่หน้าจอ
graphic.DrawArc(new Pen(Color.Black, 3), 0, 0, width, height, startAngle, sweepAngle);

// บันทึกการเปลี่ยนแปลงทั้งหมด
image.Save("draw_arc.bmp");

ต่อไปนี้เป็นผลลัพธ์ของตัวอย่างโค้ดด้านบน

วาดส่วนโค้งใน C#

วาดรูปสี่เหลี่ยมผืนผ้าด้วยภาษา C#

ต่อไปนี้เป็นขั้นตอนการวาดสี่เหลี่ยมใน C#

  • ขั้นแรก สร้างวัตถุของคลาส BmpOptions และตั้งค่าบิตต่อพิกเซลโดยใช้คุณสมบัติ BitsPerPixel
  • จากนั้นกำหนด StreamSource โดยใช้คุณสมบัติ Source
  • สร้างรูปภาพใหม่และเริ่มต้นด้วยวัตถุ BmpOptions และความสูงและความกว้างของรูปภาพ
  • สร้างวัตถุของคลาส Graphics และเริ่มต้นด้วยวัตถุ Image
  • ล้างพื้นผิวของรูปภาพด้วยสีบางส่วนโดยใช้เมธอด Graphics.Clear()
  • วาดสี่เหลี่ยมผืนผ้าโดยใช้เมธอด Graphics.DrawRectangle(Pen, Rectangle)
  • สร้างและบันทึกภาพโดยใช้เมธอด Image.Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดสี่เหลี่ยมบนรูปภาพใน C#

// สร้าง BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;

// กำหนดคุณสมบัติต้นทางสำหรับอินสแตนซ์ของ BmpOptions
bmpCreateOptions.Source = new StreamSource();

// สร้างอินสแตนซ์ของ Image และ call create method โดยผ่าน
// วัตถุ bmpCreateOptions
Image image = Image.Create(bmpCreateOptions, 500, 500);

// สร้างและเริ่มต้นอินสแตนซ์ของคลาสกราฟิก
Graphics graphic = new Graphics(image);

// ล้างพื้นผิวภาพด้วยสีขาว
graphic.Clear(Color.White);

// วาดรูปสี่เหลี่ยมผืนผ้าจุดโดยระบุวัตถุปากกาที่มีสีแดง
// สีและโครงสร้างสี่เหลี่ยมผืนผ้า
graphic.DrawRectangle(new Pen(Color.Red, 3),
        new Rectangle(60, 40, 70, 120));

// วาดรูปสี่เหลี่ยมผืนผ้าต่อเนื่องโดยระบุวัตถุปากกาที่มี
// solid brush with blue สีและโครงสร้างสี่เหลี่ยมผืนผ้า
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue), 3),
        new Rectangle(40, 60, 120, 70));

// บันทึกการเปลี่ยนแปลงทั้งหมด
image.Save("draw_reactangle.bmp");

ต่อไปนี้เป็นผลลัพธ์ของตัวอย่างโค้ดด้านบน

วาดสี่เหลี่ยมใน C#

C# .NET Image Drawing API - รับใบอนุญาตฟรี

คุณสามารถ รับใบอนุญาตชั่วคราวฟรี และวาดรูปร่างโดยไม่มีข้อจำกัดในการประเมิน

บทสรุป

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

อ่านเพิ่มเติม

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

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