สร้าง โหลด เติม และวาดบิตแมปใน C#

บิตแมปใช้ในการสร้างและจัดเก็บกราฟิกคอมพิวเตอร์ ภาพบิตแมปใช้กันอย่างแพร่หลายในหน้าเว็บและอุปกรณ์ดิจิทัล เช่น กล้อง สมาร์ทโฟน เป็นต้น ประเภทไฟล์กราฟิกบิตแมปที่พบมากที่สุดคือ BMP, GIF, PNG และ JPEG. ในบทความนี้ เราจะมาเรียนรู้วิธีสร้างบิตแมปใน C#

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

  1. C# API เพื่อสร้าง โหลด เติม และวาดบิตแมป
  2. สร้างบิตแมปใหม่ตั้งแต่เริ่มต้น
  3. สร้างบิตแมปจาก Byte Array
  4. บันทึกบิตแมปเป็นไฟล์รูปภาพ
  5. วาดรูปร่างบนบิตแมป
  6. วาดข้อความบนภาพบิตแมป
  7. เติมบิตแมปด้วยสีทึบ
  8. โหลดภาพเป็นบิตแมป
  9. ปรับขนาดรูปภาพที่มีอยู่โดยใช้ Bitmap

C# API เพื่อสร้าง โหลด เติม และวาดบิตแมป - ดาวน์โหลดฟรี

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

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

PM> Install-Package Aspose.Drawing

สร้างบิตแมปใหม่ใน C#

เราสามารถสร้างบิตแมปใหม่ตั้งแต่เริ่มต้นโดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก สร้างบิตแมปใหม่โดยใช้คลาสบิตแมปที่มีขนาดและรูปแบบที่ระบุ
  2. จากนั้น สร้างวัตถุกราฟิกใหม่จากวัตถุบิตแมปโดยใช้เมธอด FromImage()
  3. จากนั้น เริ่มต้นออบเจกต์คลาส Pen ด้วยสีและขนาดที่ระบุ
  4. หลังจากนั้นให้เรียกใช้เมธอด DrawEllipse() เพื่อวาดวงรีตามขนาดที่กำหนด
  5. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด Save()

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

// ตัวอย่างรหัสนี้สาธิตวิธีการสร้างบิตแมปใหม่โดยทางโปรแกรมใน C#
// เริ่มต้นวัตถุบิตแมป
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// สร้างกราฟิกใหม่
Graphics graphics = Graphics.FromImage(bitmap);

// เริ่มต้นปากกา
Pen pen = new Pen(Color.Red, 5);

// วาดสี่เหลี่ยมผืนผ้า
graphics.DrawEllipse(pen, new Rectangle(0, 0, 700, 700));

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.png");
สร้างบิตแมปใหม่ใน CSharp

สร้างบิตแมปใหม่ใน C#

สร้างบิตแมปจาก Byte Array ใน C#

เราสามารถสร้างบิตแมปจากไบต์สตรีมหน่วยความจำโดยทำตามขั้นตอนด้านล่าง:

  1. อ่านไฟล์ภาพเป็นอาร์เรย์ไบต์
  2. สร้างอินสแตนซ์ใหม่ของ MemoryStream โดยใช้วัตถุอาร์เรย์ไบต์
  3. สร้างบิตแมปใหม่โดยใช้คลาส Bitmap กับวัตถุ MemoryStream
  4. สุดท้าย บันทึกภาพโดยใช้เมธอด Save()

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

// ตัวอย่างโค้ดนี้สาธิตวิธีสร้างบิตแมปใหม่จากหน่วยความจำสตรีมไบต์ใน C#
// โหลดภาพและอ่านไบต์ทั้งหมด
var file = File.ReadAllBytes(@"C:\Files\Drawings\sample.jpg");

// สร้างสตรีมหน่วยความจำ
MemoryStream stream = new MemoryStream(file);

// สร้างบิตแมปใหม่
Bitmap bitmap = new Bitmap(stream);

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.jpg");

C# บันทึกบิตแมปเป็นไฟล์

เราสามารถบันทึกภาพบิตแมปเป็นไฟล์ในรูปแบบไฟล์ที่รองรับต่างๆ โดยทำตามขั้นตอนที่กล่าวถึงก่อนหน้านี้ อย่างไรก็ตาม เราจำเป็นต้องพูดถึงนามสกุลของรูปแบบไฟล์บันทึกที่ต้องการในขณะที่บันทึกไฟล์รูปภาพโดยใช้เมธอด Save(string filename, ImageFormat) ในขั้นตอนสุดท้าย

  • บันทึกบิตแมปเป็นไฟล์ BMP
bitmap.Save(@"C:\Files\output.bmp", ImageFormat.Bmp);
  • บันทึกบิตแมปเป็นไฟล์ PNG
bitmap.Save(@"C:\Files\output.png", ImageFormat.Png);
  • บันทึกบิตแมปเป็นไฟล์ JPG
bitmap.Save(@"C:\Files\output.jpg", ImageFormat.Jpeg);
  • บันทึกบิตแมปเป็นไฟล์ GIF
bitmap.Save(@"C:\Files\output.gif", ImageFormat.Gif);

C# วาดบนบิตแมป

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

เราสามารถวาดรูปร่างต่อไปนี้โดยใช้วิธีการเฉพาะที่ให้ไว้ในการวาดบนบิตแมป:

  • อาร์ค: เราสามารถวาดอาร์คโดยใช้เมธอด DrawArc()
  • Bezier: เราสามารถวาด Bezier ได้โดยใช้เมธอด DrawBezier()
  • ชุดของเส้นโค้งเบซิเยร์: เราสามารถวาดชุดของเส้นโค้งเบซิเยร์โดยใช้เมธอด DrawBeziers()
  • Curve: เราสามารถวาดรูปร่างโค้งได้โดยใช้เมธอด DrawCurve()
  • ClosedCurve: เราสามารถวาดเส้นโค้งปิดโดยใช้เมธอด DrawClosedCurve()
  • วงรี: เราสามารถวาดวงรีโดยใช้เมธอด DrawEllipse()
  • เส้น: เราสามารถวาดเส้นโดยใช้เมธอด DrawLine()
  • ชุดของเส้น: เราสามารถวาดชุดของเส้นโดยใช้เมธอด DrawLines()
  • เส้นทาง: เราสามารถวาดเส้นทางโดยใช้เมธอด DrawPath()
  • พาย: เราสามารถวาดพายโดยใช้เมธอด DrawPie()
  • รูปหลายเหลี่ยม: เราสามารถวาดรูปหลายเหลี่ยมโดยใช้เมธอด DrawPolygon()
  • สี่เหลี่ยมผืนผ้า: เราสามารถวาดรูปสี่เหลี่ยมผืนผ้าโดยใช้เมธอด DrawRectangle()
  • ชุดสี่เหลี่ยมผืนผ้า: เราสามารถวาดชุดสี่เหลี่ยมผืนผ้าโดยใช้เมธอด DrawRectangles()

เราสามารถวาดภาพบนบิตแมปด้วยวิธีต่อไปนี้:

  • ไอคอน: เราสามารถวาดภาพที่แสดงโดยไอคอนที่ระบุภายในพื้นที่ที่ระบุโดยโครงสร้างสี่เหลี่ยมผืนผ้าโดยใช้เมธอด DrawIcon()
  • ภาพ: เราสามารถวาดภาพใด ๆ ที่ระบุโดยใช้เมธอด DrawImage()

C# วาดข้อความบนบิตแมป

เราสามารถวาดสตริงใด ๆ บนบิตแมปโดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก สร้างบิตแมปใหม่โดยใช้คลาสบิตแมปที่มีขนาดที่ระบุ
  2. จากนั้น สร้างวัตถุกราฟิกใหม่จากวัตถุบิตแมปโดยใช้เมธอด FromImage()
  3. จากนั้นกำหนดออบเจกต์คลาสฟอนต์ด้วยตระกูลฟอนต์ สไตล์ และขนาดที่ต้องการ
  4. ในขณะเดียวกัน ให้เริ่มต้นวัตถุ SolidBrush ด้วยสีที่ระบุ
  5. หลังจากนั้น เรียกใช้เมธอด DrawString() โดยมีข้อความแสดง ฟอนต์ และบรัชเป็นอาร์กิวเมนต์
  6. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด Save()

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

// ตัวอย่างรหัสนี้สาธิตวิธีการวาดข้อความบนบิตแมปใหม่โดยทางโปรแกรมใน C#
// เริ่มต้นวัตถุบิตแมป
Bitmap bitmap = new Bitmap(500,200);

// สร้างกราฟิกใหม่
Graphics graphics = Graphics.FromImage(bitmap);

// เริ่มต้นแบบอักษร
var font = new Font(FontFamily.GenericSerif, 40f, FontStyle.Bold);

// เริ่มต้นแปรง
var brush = new SolidBrush(Color.Red);

// วาดสี่เหลี่ยมผืนผ้า
graphics.DrawString("Welcome to Bitmap!", font, brush, 10, 20);

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.png", ImageFormat.Png);
C# วาดข้อความบนบิตแมป

C# วาดข้อความบนบิตแมป

เติม Bitmap ด้วย Solid Color ใน C#

เราสามารถเติมบิตแมปด้วยสีทึบโดยใช้สี่เหลี่ยมที่เติมแล้วบันทึกเป็นบิตแมปใหม่โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก สร้างบิตแมปใหม่โดยใช้คลาสบิตแมปที่มีขนาดที่ระบุ
  2. จากนั้น สร้างวัตถุกราฟิกใหม่จากวัตถุบิตแมปโดยใช้เมธอด FromImage()
  3. จากนั้น เริ่มต้นวัตถุคลาสสี่เหลี่ยมผืนผ้าด้วยตำแหน่งและขนาดที่ระบุ
  4. หลังจากนั้นเรียกเมธอด FillRectangle() ด้วยสีแปรงและสี่เหลี่ยมผืนผ้า
  5. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด Save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเติมบิตแมปด้วยสีทึบโดยใช้สี่เหลี่ยมผืนผ้าใน C#

// ตัวอย่างโค้ดนี้สาธิตวิธีสร้างบิตแมปใหม่โดยเติมสี่เหลี่ยมใน C#
// เริ่มต้น Bitmap ด้วยขนาดที่ระบุ
Bitmap bitmap = new Bitmap(500, 500);

// สร้างกราฟิกใหม่
Graphics graph = Graphics.FromImage(bitmap);

// กำหนดสี่เหลี่ยมผืนผ้า
Rectangle ImageSize = new Rectangle(0, 0, 500, 500);

// วาดสี่เหลี่ยมที่เติม
graph.FillRectangle(Brushes.Gray, ImageSize);

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.png");
C# วาดบนบิตแมปและเติมด้วยสี่เหลี่ยมผืนผ้า

C# วาดรูปสี่เหลี่ยมผืนผ้าบนบิตแมปและเติมสี

โหลดรูปภาพใน Bitmap โดยใช้ C#

เรายังสามารถโหลดรูปภาพที่มีอยู่ในบิตแมปและบันทึกเป็นบิตแมปใหม่โดยทำตามขั้นตอนด้านล่าง:

  1. ขั้นแรก โหลดรูปภาพโดยใช้คลาสบิตแมป
  2. จากนั้น สร้างบิตแมปใหม่โดยใช้คลาสบิตแมปที่มีขนาดที่ระบุ
  3. จากนั้น สร้างวัตถุกราฟิกใหม่จากวัตถุบิตแมปที่สร้างขึ้นใหม่โดยใช้เมธอด FromImage()
  4. หลังจากนั้นให้เรียกใช้เมธอด DrawImage() โดยมีอาร์กิวเมนต์พิกัดรูปภาพและตำแหน่ง
  5. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด Save()

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

// ตัวอย่างโค้ดนี้สาธิตวิธีการโหลดรูปภาพลงในบิตแมปและบันทึกเป็นบิตแมปใหม่
// โหลดภาพ:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// เริ่มต้น Bitmap ด้วยขนาดที่ระบุ
Bitmap bitmap = new Bitmap(1000, 1000);

// สร้างกราฟิกใหม่
Graphics graphics = Graphics.FromImage(bitmap);

// วาดภาพตามตำแหน่งที่กำหนด
graphics.DrawImage(image, 10, 10);

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.png");
โหลดภาพในบิตแมปโดยใช้ CSharp

โหลดรูปภาพใน Bitmap โดยใช้ C#

วิธีปรับขนาดรูปภาพโดยใช้ Bitmap ใน C#

เราสามารถโหลดและปรับขนาดรูปภาพที่มีอยู่ในบิตแมปและบันทึกเป็นบิตแมปใหม่โดยทำตามขั้นตอนด้านล่าง:

  1. โหลดรูปภาพที่มีอยู่โดยใช้คลาส Bitmap
  2. สร้างบิตแมปใหม่โดยใช้คลาส Bitmap พร้อมภาพที่โหลดและขนาดที่ระบุ
  3. สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด Save()

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

// ตัวอย่างโค้ดนี้สาธิตวิธีสร้างการปรับขนาดรูปภาพที่มีอยู่และสร้างบิตแมปใหม่ใน C#
// โหลดภาพ:
Bitmap image = new Bitmap(@"C:\Files\Drawings\sample.jpg");

// สร้างบิตแมปใหม่ที่มีขนาดครึ่งหนึ่งของภาพที่โหลด:
Bitmap bitmap = new Bitmap(image, (int)(image.Width * 0.5), (int)(image.Height * 0.5));

// บันทึกไฟล์
bitmap.Save(@"C:\Files\Drawings\output.jpg");
วิธีปรับขนาดรูปภาพโดยใช้ Bitmap ใน C#

ปรับขนาดรูปภาพที่มีอยู่โดยใช้ C#

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

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

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีการ:

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

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

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