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

Java Image Drawing SDK เพื่อทำงานกับ Bitmap

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

คุณสามารถดาวน์โหลดไลบรารีจาก releases และเพิ่ม JAR ลงในโปรเจกต์ของคุณหรือทำการติดตั้งผ่าน Maven ได้

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-drawing</artifactId>
  <version>25.6</version> <!-- Replace with latest version -->
</dependency>

1. สร้าง Bitmap ใหม่ใน Java

เพื่อสร้างบิตแมพจากศูนย์ ให้ทำตามขั้นตอนด้านล่าง:

  1. สร้าง bitmap ใหม่พร้อมความกว้างและความสูงที่กำหนด
  2. สร้างอ็อบเจกต์ Graphics จาก bitmap。
  3. สร้างวัตถุคลาส Pen โดยกำหนดความหนาและสีเฉพาะ
  4. วาดวงรีบนบิตแมพโดยใช้ปากกา
  5. บันทึก bitmap เป็นไฟล์ภาพ PNG.

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

// สร้างบิตแมพใหม่ที่มีความกว้างและความสูง 800 พิกเซล
Bitmap bitmap = new Bitmap(800, 800);

// สร้างวัตถุกราฟิกจากภาพบิตแมพเพื่อเปิดใช้งานการวาดรูป
Graphics graphics = Graphics.fromImage(bitmap);

// กำหนดปากกาสีแดงที่มีความหนา 5 พิกเซล
Pen pen = new Pen(Color.getRed(), 5);

// วาดวงรีโดยใช้ปากกาเริ่มจาก (0, 0) โดยมีความกว้างและความสูง 700 พิกเซล
graphics.drawEllipse(pen, 0, 0, 700, 700);

// บันทึกบิตแมพสุดท้ายเป็นไฟล์ภาพ PNG
bitmap.save("output.png");
สร้าง Bitmap ใหม่ใน Java

สร้าง Bitmap ใหม่ใน Java

2. สร้าง Bitmap จาก Memory Stream

เพื่อสร้างภาพบิตแมพจากสตรีมหน่วยความจำ ให้ปฏิบัติตามขั้นตอนด้านล่าง:

  1. เปิดสตรีมข้อมูลไฟล์สำหรับไฟล์ภาพที่มีอยู่
  2. สร้างบิตแมพจากสตรีมข้อมูล
  3. บันทึกภาพบิตแมพไปยังไฟล์ภาพใหม่

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างบิทแมพโดยใช้สตรีมข้อมูลในภาษา Java。

// เปิดสตรีมไฟล์อินพุตเพื่ออ่านภาพที่มีอยู่
InputStream stream = new FileInputStream("input.png");

// สร้างภาพบิตแมพจากสตรีมข้อมูล
Bitmap bitmap = new Bitmap(stream);

// บันทึกภาพบิตแมพเป็นไฟล์ PNG ใหม่
bitmap.save("output.png", ImageFormat.getPng().d());

3. บันทึก Bitmap ไปยังไฟล์

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

คุณสามารถบันทึกภาพบิตแมพในรูปแบบต่าง ๆ ได้โดยการเปลี่ยนรูปแบบภาพ:

  • บันทึกภาพ Bitmap เป็นไฟล์ BMP
bitmap.save("output.bmp", ImageFormat.getBmp().d());
  • บันทึก Bitmap เป็นไฟล์ PNG
bitmap.save("output.png", ImageFormat.getPng().d());
  • บันทึก Bitmap เป็นไฟล์ JPG
bitmap.save("output.jpg", ImageFormat.getJpeg().d());
  • บันทึก Bitmap เป็นไฟล์ GIF
bitmap.save("output.gif", ImageFormat.getGif().d());

4. วาดรูปทรงบน Bitmap

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

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดรูปทรงบน bitmap ใน Java。

// สร้าง bitmap ใหม่ด้วยความกว้างและความสูง 500 พิกเซล
Bitmap bitmap = new Bitmap(500, 500);

// สร้างวัตถุกราฟิกเพื่อลงบนบิทแมพ
Graphics graphics = Graphics.fromImage(bitmap);

// เริ่มต้นปากกาสีน้ำเงินที่มีความหนา 2 พิกเซล
Pen pen = new Pen(Color.getBlue(), 2);

// วาดสี่เหลี่ยมผืนผ้าซึ่งเริ่มต้นที่ (10, 10) โดยมีความกว้าง 100 และความสูง 50
graphics.drawRectangle(pen, 10, 10, 100, 50);

// วาดรูปไข่เริ่มจาก (10, 130) มีความกว้าง 280 และความสูง 280
graphics.drawEllipse(pen, 10, 130, 280, 280);

// บันทึกภาพบิทแมพสุดท้ายเป็นไฟล์ PNG
bitmap.save("draw_shapes.png");
วาดรูปร่างบน Bitmap ใน Java

วาดรูปร่างบน Bitmap ใน Java

คุณสามารถวาดรูปร่างต่างๆ บนบิตแมพโดยใช้วิธีการวาดที่ติดตั้งอยู่ในคลาส Graphics ใน Aspose.Drawing for Java ด้านล่างนี้คือประเภทของรูปร่างที่รองรับและวิธีการที่ Corresponding:

  • Arc: ใช้เมธอด drawArc() เพื่อวาดเส้นโค้ง.
  • Bezier Curve: ใช้เมธอด drawBezier() เพื่อวาดเส้น Bezier เดียว
  • หลายเบเซียร์เคอร์ฟ: ใช้ drawBeziers() วิธีการเพื่อวาดลำดับของเบเซียร์สไลน์.
  • Curve: ใช้เมธอด drawCurve() เพื่อสร้างรูปร่างที่เรียบและโค้ง.
  • Closed Curve: Use the drawClosedCurve() method to draw a closed spline.
  • Ellipsis: ใช้ drawEllipse() วิธีการเพื่อวาดรูปทรงเอลลิปส์
  • ใช้วิธีการ drawLine() เพื่อวาดเส้นตรง
  • หลายบรรทัด: ใช้เมธอด drawLines() ในการวาดเส้นที่เชื่อมโยงกันหลาย ๆ เส้น
  • Path: Use the drawPath() method to render complex shapes using a GraphicsPath.
  • พาย: ใช้เมธอด drawPie() เพื่อวาดรูปทรงพาย.
  • Polygon: ใช้เมธอด drawPolygon() เพื่อสร้างรูปหลายเหลี่ยมโดยการเชื่อมต่อจุดต่างๆ
  • สี่เหลี่ยมผืนผ้า: ใช้เมธอด drawRectangle() เพื่อวาดสี่เหลี่ยมผืนผ้า。
  • หลายสี่เหลี่ยมผืนผ้า: ใช้ drawRectangles() วิธีการเพื่อวาดสี่เหลี่ยมผืนผ้าหลาย ๆ อันในครั้งเดียว

นอกจากนี้นอกจากรูปทรง คุณยังสามารถวาดภาพลงบนบิตแมพได้:

  • ไอคอน: ใช้เมธอด drawIcon() เพื่อวาดไอคอนภายในสี่เหลี่ยมที่กำหนดไว้
  • ภาพ: ใช้เมธอด drawImage() เพื่อวาดภาพอื่นลงบนบิตแมพ

วิธีการวาดเหล่านี้ทำให้สร้างกราฟิกแบบกำหนดเอง แผนภาพ หรือภาพที่มีการอธิบายเพิ่มเติมโดยอัตโนมัติได้ง่ายขึ้น

5. วาดข้อความบน Bitmap

เพื่อวาดข้อความบนภาพบิตแมพโดยทำตามขั้นตอนด้านล่าง:

  1. สร้าง bitmap ใหม่ด้วยความกว้างและความสูงที่กำหนด
  2. สร้างวัตถุกราฟิกจากบิตแมพ
  3. ล้าง bitmap ด้วยสีพื้นหลังเทาอ่อน
  4. กำหนดฟอนต์ด้วยชื่อและขนาดที่ต้องการ。
  5. สร้างแปรงเต็มที่มีสีดำ
  6. วาดข้อความในบิตแมพโดยใช้ฟอนต์และแปรงที่ระบุ
  7. บันทึกภาพบิตแมพเป็นไฟล์ภาพ PNG

ต่อไปนี้คือตัวอย่างโค้ดที่แสดงวิธีการวาดข้อความบนบิตแมพใน Java.

// วิธีการวาดข้อความลงบนบิตแมพใน Java โดยใช้ Aspose.Drawing
// สร้างบิตแมพใหม่ที่มีขนาด 500x200 พิกเซล
Bitmap bitmap = new Bitmap(500, 200);

// สร้างวัตถุกราฟิกเพื่อวาดบนบิตแมพ
Graphics graphics = Graphics.fromImage(bitmap);

// เติมแผนภาพทั้งหมดด้วยพื้นหลังสีเทาอ่อน
graphics.clear(Color.getLightGray());

// กำหนดฟอนต์ที่มีชื่อว่า "Arial" และขนาด 24
Font font = new Font("Arial", 24);

// สร้างแปรงสีดำที่ทนทานสำหรับวาดข้อความ
Brush brush = new SolidBrush(Color.getBlack());

// วาดสตริงบนบิตแมพที่ตำแหน่ง (20, 80)
graphics.drawString("Welcome to Bitmap!", font, brush, 20, 80);

// บันทึกภาพสุดท้ายพร้อมข้อความเป็นไฟล์ PNG
bitmap.save("output.png");
Java วาดข้อความบน Bitmap

Java วาดข้อความบน Bitmap

6. เติม Bitmap ด้วยสีทึบ

คุณสามารถเติมส่วนหนึ่งของภาพด้วยสีทึบได้โดยการทำตามขั้นตอนด้านล่าง:

  1. สร้าง bitmap ใหม่ด้วยความกว้างและความสูงที่ต้องการ
  2. สร้างวัตถุกราฟิกจากบิตแมพ
  3. สร้างแปรงสีเทาที่แน่นหนาสำหรับการเติม
  4. เติมพื้นที่บิตแมพทั้งหมดด้วยสีเทาโดยใช้สี่เหลี่ยมที่เต็มไปด้วยสี.
  5. บันทึก bitmap เป็นไฟล์ภาพ PNG.

รหัสตัวอย่างต่อไปนี้แสดงวิธีการเติมภาพบิตแมพด้วยสีที่แท้จริงโดยใช้สี่เหลี่ยมใน Java.

// สร้างบิตแมพใหม่ที่มีขนาด 500x500 พิกเซล
Bitmap bitmap = new Bitmap(500, 500);

// สร้างวัตถุกราฟิกเพื่อวาดบนบิตแมพ
Graphics graphics = Graphics.fromImage(bitmap);

// สร้างแปรงสีเทาที่เป็นเนื้อเดียวเพื่อใช้ในการเติมสี
SolidBrush brush = new SolidBrush(Color.getGray());

// เติมพื้นที่ทั้งหมดของแ bitmap ด้วยสีเทา
graphics.fillRectangle(brush, 0, 0, bitmap.getWidth(), bitmap.getHeight());

// บันทึกบิตแมพที่เติมเต็มแล้วเป็นไฟล์ภาพ PNG
bitmap.save("output.png");
การวาด Java บน Bitmap และเติมด้วยสี่เหลี่ยม

Java วาดสี่เหลี่ยมผืนผ้าบน Bitmap และเติมด้วยสี

7. โหลดภาพไปยัง Bitmap

คุณยังสามารถโหลดไฟล์ภาพลงในวัตถุ Bitmap ได้ดังนี้:

  1. สร้างบิตแมพเปล่าใหม่ตามขนาดที่ต้องการ
  2. โหลดภาพที่มีอยู่ลงในออบเจ็กต์บิตแมพ
  3. สร้างวัตถุกราฟิกจากบิตแมพว่าง
  4. วาดภาพที่โหลดขึ้นบนบิตแมพเปล่าที่มุมซ้ายบน
  5. บันทึกภาพบิตแมพสุดท้ายเป็นไฟล์ภาพ PNG

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

// สร้างภาพบิตแมพเปล่าใหม่ที่มีขนาด 500x500 พิกเซล
Bitmap bitmap = new Bitmap(500, 500);

// โหลดภาพที่มีอยู่จากไฟล์เข้าในออบเจ็กต์บิตแมพ
Bitmap loaded = new Bitmap("C:\\Files\\Drawings\\sample.jpg");

// สร้างวัตถุกกราฟิกเพื่อวาดบนบิตแมพว่าง
Graphics graphics = Graphics.fromImage(bitmap);

// วาดภาพที่โหลดแล้วลงบนบิตแมพว่างที่ตำแหน่ง (0, 0)
graphics.drawImage(loaded, 0, 0);

// บันทึก bitmap สุดท้ายเป็นไฟล์ PNG ใหม่
bitmap.save("output.png");
โหลดรูปภาพเข้าสู่ Bitmap โดยใช้ Java

โหลดภาพในรูปแบบ Bitmap โดยใช้ Java

8. ปรับขนาดภาพที่มีอยู่แล้ว

เพื่อปรับขนาดภาพบิตแมพ:

  1. โหลดภาพต้นฉบับลงในออบเจ็กต์บิตแมพ
  2. สร้าง bitmap ใหม่ที่มีความกว้างและความสูงเพียงครึ่งหนึ่งของภาพต้นฉบับ
  3. บันทึกรูปภาพบิตแมพที่ปรับขนาดแล้วเป็นไฟล์ภาพ PNG。

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

// โหลดภาพต้นฉบับจากไฟล์เข้าสู่วัตถุ bitmap
Bitmap original = new Bitmap("C:\\Files\\Drawings\\sample.jpg");

// สร้างบิตแมพใหม่ที่มีขนาดลดลง 50% ของความกว้างและความสูงเดิม
Bitmap resized = new Bitmap(original, new Size((int)(original.getWidth() * 0.5), (int)(original.getHeight() * 0.5)));

// บันทึกบิตแมพที่ปรับขนาดใหม่เป็นไฟล์ภาพ PNG ใหม่
resized.save("output.png");
วิธีการปรับขนาดภาพโดยใช้ Bitmap ใน Java

ปรับขนาดภาพที่มีอยู่ด้วย Java

ลองใช้ Aspose.Drawing ฟรี

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

สร้าง Bitmap ใน Java: แหล่งข้อมูลฟรี

ถ้าคุณต้องการสำรวจเพิ่มเติมเกี่ยวกับการทำงานกับภาพบิตแมพใน Java แล้วให้เรียกดูแหล่งข้อมูลฟรีต่อไปนี้เพื่อเพิ่มพูนความเข้าใจและเพิ่มประสิทธิภาพในการทำงานของคุณ:

บทสรุป

ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีการสร้างและทำงานกับบิตแมพโดยใช้ Aspose.Drawing for Java เราได้พูดถึงวิธีการสร้างบิตแมพจากศูนย์ โหลดและเปลี่ยนขนาดภาพที่มีอยู่ วาดรูปทรงและข้อความ เติมพื้นที่ด้วยสีทึบ และบันทึกภาพในรูปแบบต่างๆ เช่น PNG, JPG, BMP และ GIF ด้วยความสามารถเหล่านี้ คุณสามารถเพิ่มกราฟิกและการประมวลผลภาพที่กำหนดเองลงในแอปพลิเคชัน Java ของคุณได้อย่างง่ายดาย

Aspose.Drawing for Java ทำให้การทำงานกับกราฟิก 2 มิติเป็นเรื่องง่ายด้วยโปรแกรม เชิญเยี่ยมชม เอกสารอย่างเป็นทางการ เพื่อสำรวจเพิ่มเติม.

ดูเพิ่มเติม