ใน บทความ ก่อนหน้านี้ ฉันได้ให้ภาพรวมของ .NET Graphics API - Aspose.Drawing for .NET นอกจากนั้น เราได้เห็นวิธีสร้างรูปภาพตั้งแต่เริ่มต้นหรือวาดกราฟิกบนรูปภาพที่มีอยู่โดยใช้ C# ในบทความนี้ เราจะก้าวไปข้างหน้าและเรียนรู้วิธีสร้างภาพวาด 2 มิติด้วยการวาดวัตถุกราฟิกต่างๆ ภายในแอปพลิเคชัน .NET เช่น แอปพลิเคชันเว็บ ASP.NET แอปพลิเคชัน Windows และอื่นๆ
ต่อไปนี้คือกราฟิกแบบเวกเตอร์ที่เราจะวาดในภาพวาดของเราโดยใช้ .NET Graphics API
- สร้างภาพวาดโดยใช้ C#
- วาดส่วนโค้งในภาพวาด
- วาด Bezier Spline ในภาพวาด
- วาด Cardinal Spline ในภาพวาด
- วาดเส้นโค้งปิดในภาพวาด
- วาดวงรีในภาพวาด
- วาดเส้นในภาพวาด
- วาดเส้นทางในภาพวาด
- วาดรูปหลายเหลี่ยมในรูปวาด
- วาดสี่เหลี่ยมผืนผ้าในรูปวาด
ก่อนที่เราจะเริ่ม ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง 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#
มาดูวิธีการวาดส่วนโค้งภายในภาพวาดกัน ต่อไปนี้เป็นขั้นตอนในการดำเนินการนี้
- กำหนดอินสแตนซ์ของคลาส Bitmap
- เริ่มต้นวัตถุของคลาส กราฟิก จากวัตถุบิตแมป
- สร้างวัตถุ ปากกา เพื่อวาดส่วนโค้งด้วย
- ใช้เมธอด Graphics.DrawArc(Pen, Single, Single, Single, Single, Single, Single) เพื่อวาดส่วนโค้ง
- บันทึกภาพวาดเป็นรูปภาพโดยใช้เมธอด 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.DrawArc(pen, 0, 0, 700, 700, 0, 180);
bitmap.Save("DrawArc.png");
วาด Bezier Spline ในการวาดโดยใช้ C#
ต่อไปนี้เป็นขั้นตอนในการวาด bezier spline ภายในภาพวาด
- สร้างวัตถุของคลาส Bitmap
- เริ่มต้นวัตถุของคลาส กราฟิก จากวัตถุบิตแมป
- สร้างวัตถุ ปากกา เพื่อวาดกราฟิก
- ใช้เมธอด Graphics.DrawBezier(Pen, PointF, PointF, PointF, PointF) เพื่อวาด Bezier Spline
- บันทึกภาพวาดโดยใช้เมธอด Bitmap.Save(string)
ตัวอย่างโค้ดต่อไปนี้สร้าง 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");
เพิ่ม 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
- สร้างอินสแตนซ์ของคลาส Bitmap
- กำหนดอินสแตนซ์ของคลาส กราฟิก และเริ่มต้นจากวัตถุบิตแมป
- ใช้วัตถุ ปากกา เพื่อวาดวงรี
- วาดวงรีโดยใช้เมธอด Graphics.DrawEllipse(Pen, Single, Single, Single, Single)
- บันทึกภาพวาดเป็นรูปภาพโดยใช้เมธอด 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.DrawEllipse(pen, 10, 10, 900, 700);
bitmap.Save("DrawEllipse.png");
วาดเส้นในรูปวาดด้วย C#
เส้นเป็นหนึ่งในวัตถุพื้นฐานสำหรับการสร้างภาพวาด ต่อไปนี้เป็นขั้นตอนในการวาดเส้นในภาพวาดโดยใช้ API กราฟิกของ Aspose
- สร้างอินสแตนซ์ของวัตถุ Bitmap
- สร้างวัตถุ กราฟิก ใหม่และเริ่มต้นจากวัตถุบิตแมป
- กำหนดวัตถุ ปากกา เพื่อวาดเส้น
- วาดเส้นโดยใช้เมธอด Graphics.DrawLine(Pen, Int32, Int32, Int32, Int32)
- บันทึกภาพวาดโดยใช้เมธอด 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.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#
สุดท้าย แต่ไม่ท้ายสุด วาดรูปสี่เหลี่ยมผืนผ้า ต่อไปนี้เป็นขั้นตอนในการวาดรูปสี่เหลี่ยมผืนผ้า
- สร้างวัตถุ Bitmap
- สร้างวัตถุ กราฟิก และเริ่มต้นจากวัตถุบิตแมป
- กำหนดวัตถุ ปากกา เพื่อวาดสี่เหลี่ยมผืนผ้า
- วาดสี่เหลี่ยมผืนผ้าโดยใช้เมธอด Graphics.DrawRectangle(Pen, Int32, Int32, Int32, Int32)
- บันทึกภาพวาดโดยใช้เมธอด 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.DrawRectangle(pen, 10, 10, 900, 700);
bitmap.Save("DrawRectangle.png");
บทสรุป
ในบทความนี้ เราได้เห็นวิธีการวาดอ็อบเจกต์กราฟิกต่างๆ ภายในการวาดด้วยโปรแกรมโดยใช้ C# คำแนะนำทีละขั้นตอนและตัวอย่างโค้ดแสดงวิธีวาดเส้น สี่เหลี่ยม รูปหลายเหลี่ยม ส่วนโค้ง เบซิเยร์สไปลน์ คาร์ดินัลสไปลน์ เส้นโค้งและวงรีภายในภาพวาด คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ .NET Graphics API ได้โดยใช้ เอกสารประกอบ