การสร้างภาพที่เหมือนจริงเป็นเรื่องที่ท้าทายเพราะต้องใช้สี พื้นผิว และความหนาของเส้นที่ผสมผสานกันอย่างเหมาะสม นามแฝงเป็นปัญหาที่เกิดขึ้นเมื่อสร้างภาพที่เกี่ยวข้องกับกราฟิกคอมพิวเตอร์ ในการสร้างภาพที่เหมือนจริง เราจำเป็นต้องลดรอยหยักเพื่อทำให้เส้นหยักเรียบขึ้น การลดรอยหยักเป็นเทคนิคที่ทำให้กราฟิกบนหน้าจอของคุณดูนุ่มนวลขึ้น ใช้อัลกอริทึมกับขอบของวัตถุเพื่อให้เรียบขึ้นและขรุขระน้อยลง มีเทคนิคการลบรอยหยักหลายประเภทที่สามารถนำไปใช้ได้ ขึ้นอยู่กับประเภทของงานศิลปะที่คุณใช้ นามแฝงเกิดขึ้นเมื่อมีความคมชัดสูงระหว่างพิกเซลที่อยู่ติดกัน ซึ่งอาจทำให้เกิดรอยหยักและเส้นโค้งขั้นบันไดที่เส้นบรรจบกันหรือข้ามกัน บทความนี้เกี่ยวกับการลบรอยหยักในคอมพิวเตอร์กราฟิกโดยใช้ C# เราจะมาเรียนรู้วิธีใช้ Anti-aliasing กับเส้น เส้นโค้ง และข้อความใน C#
หัวข้อต่อไปนี้จะกล่าวถึงในบทความนี้:
C# Computer Graphics Antialiasing API - ดาวน์โหลดฟรี
สำหรับการใช้การลดรอยหยักใน C# เราจะใช้ API Aspose.Drawing for .NET ไลบรารีกราฟิก 2D ข้ามแพลตฟอร์มนี้ช่วยให้คุณวาดข้อความ รูปทรงเรขาคณิต และรูปภาพโดยทางโปรแกรม นอกจากนี้ คุณสามารถโหลด บันทึก และจัดการ รูปแบบไฟล์ที่รองรับ
โปรด ดาวน์โหลด DLL ของ API หรือติดตั้งโดยใช้ NuGet
PM> Install-Package Aspose.Drawing
การลดรอยหยักด้วยเส้นและเส้นโค้งใน C#
เราสามารถวาดเส้นและเส้นโค้งได้อย่างง่ายดายด้วยการลดรอยหยักใน C# โดยทำตามขั้นตอนด้านล่าง:
- ขั้นแรก สร้างอินสแตนซ์ของคลาสบิตแมป
- ถัดไป สร้างวัตถุคลาสกราฟิกโดยใช้เมธอด Graphics.FromImage() กับวัตถุบิตแมป
- จากนั้นตั้งค่าโหมดการปรับให้เรียบเป็น AntiAlias
- ในขณะเดียวกัน ให้เริ่มต้นวัตถุคลาส Pen ด้วยสีและขนาดที่ระบุ
- หลังจากนั้นให้วาดเส้น เส้นโค้ง หรือวัตถุอื่น ๆ ที่ต้องการโดยใช้วิธีการที่เกี่ยวข้อง
- สุดท้าย เรียกใช้เมธอด Save() เพื่อบันทึกอิมเมจเอาต์พุตที่พาธอิมเมจที่ระบุ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้การลดรอยหยักด้วยเส้นและเส้นโค้งใน C#
// ตัวอย่างโค้ดนี้สาธิตวิธีการใช้การลดรอยหยักด้วยเส้นและเส้นโค้ง
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(500, 500, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// เริ่มต้นวัตถุกราฟิก
Graphics graphics = Graphics.FromImage(bitmap);
// ตั้งโหมดสมูททิน
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.Clear(Color.White);
// เริ่มต้นปากกา
Pen pen = new Pen(Color.Black, 5);
// วาดวงรี
graphics.DrawEllipse(pen, 10, 10, 980, 780);
// วาดเส้นโค้ง
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) });
// ขีดเส้น
graphics.DrawLine(pen, 20, 20, 980, 780);
// บันทึกภาพ
bitmap.Save("C:\\Files\\Antialiasing.png");
การลดรอยหยักด้วยข้อความใน C#
ในทำนองเดียวกัน เราสามารถใช้การลดรอยหยักกับข้อความใน C# โดยทำตามขั้นตอนด้านล่าง:
- ขั้นแรก สร้างอินสแตนซ์ของคลาสบิตแมป
- ถัดไป สร้างวัตถุคลาสกราฟิกโดยใช้เมธอด Graphics.FromImage() กับวัตถุบิตแมป
- จากนั้น เริ่มต้นวัตถุคลาสแปรงด้วยสีที่ระบุ
- ในขณะเดียวกัน ให้ตั้งค่า TextRenderingHint เป็น AntiAlias
- หลังจากนั้นเขียนข้อความโดยใช้เมธอด DrawString()
- สุดท้าย เรียกใช้เมธอด Save() เพื่อบันทึกอิมเมจเอาต์พุตที่พาธอิมเมจที่ระบุ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้การลดรอยหยักกับข้อความใน C#
// ตัวอย่างโค้ดนี้สาธิตวิธีการใช้การลดรอยหยักด้วยเส้นและเส้นโค้ง
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(500, 500, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// เริ่มต้นวัตถุกราฟิก
Graphics graphics = Graphics.FromImage(bitmap);
// ตั้งโหมดสมูททิน
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
graphics.Clear(Color.White);
// กำหนดตระกูลฟอนต์
FontFamily fontFamily = new FontFamily("Arial");
// กำหนดแบบอักษร
Font font = new Font(fontFamily, 30, FontStyle.Regular, GraphicsUnit.Pixel);
// เริ่มต้นแปรงแข็ง
SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
// วาดสตริงด้วยคำแนะนำในการแสดงข้อความเป็น SingleBitPerPixel
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString("This is Single Bit Per Pixel String!", font, solidBrush, new PointF(10, 10));
// วาดสตริงด้วยคำแนะนำในการแสดงข้อความเป็น AntiAlias
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
graphics.DrawString("This is Anti Alias String!", font, solidBrush, new PointF(10, 60));
// บันทึกภาพ
bitmap.Save("C:\\Files\\AntialiasingText.png");
รับใบอนุญาตชั่วคราวฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อลองใช้ Aspose.Drawing for .NET โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีใช้เทคนิคการลดรอยหยักโดยทางโปรแกรมใน C# นอกจากนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Aspose.Drawing for .NET โดยใช้ เอกสารประกอบ และสำรวจคุณสมบัติต่างๆ ที่ API รองรับ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราได้ที่ ฟอรัมสนับสนุนฟรี