วาดกราฟิกด้วย C#

ใน บทความ ก่อนหน้านี้ ฉันได้ให้ภาพรวมของ .NET Graphics API - Aspose.Drawing for .NET นอกจากนั้น เราได้เห็นวิธีสร้างรูปภาพตั้งแต่เริ่มต้นหรือวาดกราฟิกบนรูปภาพที่มีอยู่โดยใช้ C# ในบทความนี้ เราจะก้าวไปข้างหน้าและเรียนรู้วิธีสร้างภาพวาด 2 มิติด้วยการวาดวัตถุกราฟิกต่างๆ ภายในแอปพลิเคชัน .NET เช่น แอปพลิเคชันเว็บ ASP.NET แอปพลิเคชัน Windows และอื่นๆ

ต่อไปนี้คือกราฟิกแบบเวกเตอร์ที่เราจะวาดในภาพวาดของเราโดยใช้ .NET Graphics API

ก่อนที่เราจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Aspose.Drawing for .NET ภายในแอปพลิเคชัน .NET ของคุณ คุณสามารถอ่านเกี่ยวกับวิธีการติดตั้งได้ใน โพสต์นี้

สร้าง Drawing จาก Scratch โดยใช้ C#

ก่อนอื่น เรามาดูวิธีสร้างภาพวาดเปล่าและบันทึกเป็นภาพ PNG ขั้นตอนง่ายเหมือนพาย

  • สร้างวัตถุ Bitmap ใหม่
  • บันทึกรูปวาดในรูปแบบ PNG โดยใช้วิธี Bitmap.Save(string)

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

// ตัวอย่างการสร้างรูปวาดใหม่ใน C# .NET และเรนเดอร์เป็น PNG 
// ดู https://github.com/aspose-drawing/Aspose.Drawing-for-.NET และ https://docs.aspose.com/drawing/net/ สำหรับตัวอย่างเพิ่มเติม
// สร้างภาพวาดใหม่
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
// บันทึกรูปวาด
bitmap.Save(RunExamples.GetDataDir() + @"drawing.png");

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

มาดูวิธีการวาดส่วนโค้งภายในภาพวาดกัน ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้

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

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawArc(pen, 0, 0, 700, 700, 0, 180);

bitmap.Save("DrawArc.png");
วาดส่วนโค้ง

วาด Bezier Spline ในการวาดโดยใช้ C#

ต่อไปนี้เป็นขั้นตอนในการวาด bezier spline ภายในภาพวาด

ตัวอย่างโค้ดต่อไปนี้สร้าง Bezier Spline โดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
PointF p1 = new PointF(0, 0);   // start point
PointF c1 = new PointF(0, 800);   // first control point
PointF c2 = new PointF(1000, 0);  // second control point
PointF p2 = new PointF(1000, 800);  // end point
graphics.DrawBezier(pen, p1, c1, c2, p2);

bitmap.Save("DrawBezierSpline.png");
วาด Bezier Spline

เพิ่ม Cardinal Spline ในการวาดโดยใช้ C#

ใช้ขั้นตอนต่อไปนี้เพื่อวาดเส้นโค้งสำคัญโดยใช้ .NET Graphics API ของเรา

  • สร้างอินสแตนซ์วัตถุของคลาส Bitmap
  • สร้างวัตถุของคลาส กราฟิก จากวัตถุบิตแมป
  • สร้างวัตถุ ปากกา สำหรับการวาด
  • วาดคาร์ดินัลสไปลน์โดยใช้เมธอด Graphics.DrawCurve(Pen,Point[])
  • บันทึกภาพวาดเป็นรูปภาพโดยใช้เมธอด Bitmap.Save(string)

ตัวอย่างโค้ด C# ต่อไปนี้วาดเส้นโค้งสำคัญโดยใช้ Aspose.Drawing for .NET

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawCurve(pen, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });

bitmap.Save("DrawCardinalSpline.png");
วาดคาร์ดินัลสไปลน์

เพิ่มเส้นโค้งปิดใน Drawing โดยใช้ C#

คุณยังสามารถวาดเส้นโค้งปิดในลักษณะเดียวกับที่คุณวาดวัตถุกราฟิกอื่นๆ ต่อไปนี้เป็นขั้นตอนสำหรับสิ่งนี้

  • สร้างอินสแตนซ์ของวัตถุ Bitmap
  • สร้างวัตถุของคลาส กราฟิก และเริ่มต้นจากวัตถุบิตแมป
  • สร้างวัตถุ ปากกา สำหรับการวาดเส้นโค้งปิด
  • วาดเส้นโค้งปิดโดยใช้เมธอด Graphics.DrawClosedCurve(Pen,Point[])
  • บันทึกภาพวาดโดยใช้เมธอด Bitmap.Save(string)

คุณสามารถวาดเส้นโค้งปิดได้โดยใช้ตัวอย่างโค้ด C# ต่อไปนี้

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawClosedCurve(pen, new Point[] { new Point(100, 700), new Point(350, 600), new Point(500, 500), new Point(650, 600), new Point(900, 700) });

bitmap.Save("DrawClosedCurve.png");
วาดเส้นโค้งปิด

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

ต่อไปนี้เป็นขั้นตอนในการวาดวงรีในรูปวาดโดยใช้ Aspose.Drawing for .NET

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

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawEllipse(pen, 10, 10, 900, 700);

bitmap.Save("DrawEllipse.png");
วาดวงรี

วาดเส้นในรูปวาดด้วย C#

เส้นเป็นหนึ่งในวัตถุพื้นฐานสำหรับการสร้างภาพวาด ต่อไปนี้เป็นขั้นตอนในการวาดเส้นในภาพวาดโดยใช้ API กราฟิกของ Aspose

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

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

bitmap.Save("DrawLines.png");
วาดเส้น

วาดเส้นทางในภาพวาดโดยใช้ C

ต่อไปนี้เป็นขั้นตอนในการวาดเส้นทางภายในรูปวาดโดยใช้ C#

  • สร้างอินสแตนซ์ของวัตถุ Bitmap
  • สร้างวัตถุของคลาส กราฟิก และเริ่มต้นจากวัตถุบิตแมป
  • กำหนดวัตถุ Pen เพื่อวาดเส้นทาง
  • สร้างอินสแตนซ์ของคลาส GraphicsPath
  • เพิ่มกราฟิกในคอลเลกชันเส้นทาง
  • วาดเส้นทางโดยใช้เมธอด Graphics.DrawPath(Pen, GraphicsPath)
  • บันทึกภาพวาดโดยใช้เมธอด Bitmap.Save(string)

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

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;
using System.Drawing.Drawing2D;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
GraphicsPath path = new GraphicsPath();
path.AddLine(100, 100, 1000, 400);
path.AddLine(1000, 600, 300, 600);
path.AddRectangle(new Rectangle(500, 350, 200, 400));
path.AddEllipse(10, 250, 450, 300);
graphics.DrawPath(pen, path);

bitmap.Save("DrawPath.png");
วาดเส้นทาง

วาดรูปหลายเหลี่ยมในรูปวาดโดยใช้ C#

ต่อไปนี้เป็นขั้นตอนในการวาดรูปหลายเหลี่ยมภายในรูปวาดโดยใช้ Aspose.Drawing for .NET

  • สร้างอินสแตนซ์ของวัตถุ Bitmap
  • กำหนดวัตถุ กราฟิก และเริ่มต้นจากวัตถุบิตแมป
  • กำหนดวัตถุ ปากกา เพื่อวาดรูปหลายเหลี่ยม
  • วาดรูปหลายเหลี่ยมโดยใช้เมธอด Graphics.DrawPolygon(Pen,Point[])
  • บันทึกภาพวาดโดยใช้เมธอด Bitmap.Save(string)

นี่คือวิธีที่คุณสามารถวาดรูปหลายเหลี่ยมภายในรูปวาดโดยใช้ C#

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

bitmap.Save("DrawPolygon.png");
วาดรูปหลายเหลี่ยม

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

สุดท้าย แต่ไม่ท้ายสุด วาดรูปสี่เหลี่ยมผืนผ้า ต่อไปนี้เป็นขั้นตอนในการวาดรูปสี่เหลี่ยมผืนผ้า

ตัวอย่างโค้ด C# ต่อไปนี้วาดสี่เหลี่ยมผืนผ้าภายในรูปวาด

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-drawing/Aspose.Drawing-for-.NET

using System.Drawing;

Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);

Pen pen = new Pen(Color.Blue, 2);
graphics.DrawRectangle(pen, 10, 10, 900, 700);

bitmap.Save("DrawRectangle.png");
วาดสี่เหลี่ยมผืนผ้า

บทสรุป

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

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