วันนี้เราจะมาเรียนรู้พื้นฐานของการเขียนโปรแกรมกราฟิกใน Java เราจะเจาะลึกพื้นฐานของการวาดรูปทรงพื้นฐาน การปรับแต่งสี และการทำงานกับปากกา ไม่ว่าคุณจะสร้างกราฟิกโดยเป็นส่วนหนึ่งของโปรเจ็กต์ปัจจุบันหรือเป็นพื้นฐานของเกมหรือแอปของคุณเอง เรามาสำรวจวิธีสร้างภาพที่สวยงามอย่างง่ายดายด้วยการเขียนโปรแกรมกันดีกว่า
บทความนี้ครอบคลุมหัวข้อต่อไปนี้:
- ไลบรารีกราฟิก Java
- การเขียนโปรแกรมกราฟิกใน Java
- วาดเส้นโค้ง
- รูปหลายเหลี่ยมและสี่เหลี่ยมผืนผ้า
- วิธีการวาดเส้น
- วาดเส้นทาง
- วาดขอบเขตการเติม
ไลบรารีกราฟิก Java - ดาวน์โหลดฟรี
Aspose. Drawing เป็นหนึ่งในไลบรารีกราฟิกแบบเวกเตอร์ที่ใช้กันอย่างแพร่หลายสำหรับการเขียนโปรแกรม 2D เราจะใช้ Aspose. Drawing for Java API สำหรับการเขียนโปรแกรมกราฟิกใน Java โปรแกรมเมอร์สามารถใช้ประโยชน์จากไลบรารีข้ามแพลตฟอร์มนี้เพื่อวาดข้อความ รูปร่าง และรูปภาพในแอปพลิเคชัน 2D ของตน อนุญาตให้โหลด บันทึก และจัดการ รูปแบบไฟล์ที่รองรับ
โปรด ดาวน์โหลด JAR ของ API หรือเพิ่มการกำหนดค่า pom.xml ต่อไปนี้ในแอปพลิเคชัน Java ที่ใช้ Maven
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-drawing</artifactId>
<version>24.1</version>
</dependency>
</dependencies>
การเขียนโปรแกรมกราฟิกใน Java
ใน Java เราสามารถวาดรูปร่างประเภทต่างๆ ได้อย่างง่ายดาย เช่น เส้นโค้ง เส้น สี่เหลี่ยม พื้นที่เต็ม วงรี และรูปหลายเหลี่ยม API มีวิธีการต่างๆ ในการวาดรูปร่างเหล่านี้ เราสามารถสร้างกราฟิกเวกเตอร์ที่หลากหลายโดยทางโปรแกรมโดยทำตามขั้นตอนด้านล่าง:
- สร้างวัตถุของคลาสบิตแมป
- เตรียมใช้งานวัตถุของคลาสกราฟิกจากบิตแมป
- กำหนดวัตถุคลาส Pen หรือ SolidBrush ด้วยพารามิเตอร์ที่ต้องการ
- ใช้วิธีการเฉพาะรูปร่างของคลาสกราฟิกเพื่อวาดรูปร่างที่ต้องการ
- ในตอนท้ายให้บันทึกภาพ
ตอนนี้เรามาดูวิธีการดำเนินการตามขั้นตอนเหล่านี้ใน Java
วาดเส้นโค้งใน Java
เราสามารถวาดส่วนโค้ง วงกลม วงรี หรือเส้นโค้งปิดได้โดยใช้วิธีการต่อไปนี้
- DrawArc() วิธีการวาดส่วนโค้ง
- DrawEllipse() วิธีการวาดวงรี
- DrawClosedCurve() วิธีการวาดเส้นโค้งปิด
- DrawCurve() วิธีการวาดเส้นโค้ง
โปรดทำตามขั้นตอนด้านล่างเพื่อวาดรูปทรงโค้ง:
- สร้างอินสแตนซ์ของคลาสบิตแมป
- สร้างวัตถุคลาสกราฟิกโดยใช้เมธอด fromImage() จากวัตถุบิตแมปที่สร้างขึ้นใหม่
- กำหนดวัตถุคลาสปากกาด้วยสีและขนาดที่ระบุ
- หลังจากนั้น ให้เรียกเมธอด DrawClosedCurve() เพื่อวาดเส้นโค้งปิด
- หรือคุณสามารถทำซ้ำขั้นตอนข้างต้นเพื่อเพิ่มส่วนโค้งและวงรี
- สุดท้าย ให้บันทึกภาพที่ส่งออกโดยใช้เมธอด save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดรูปร่างโค้งใน Java
// ตัวอย่างโค้ดนี้สาธิตวิธีการวาดเส้นโค้ง ส่วนโค้ง และวงกลมแบบปิด
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(1000, 800);
// เริ่มต้นกราฟิกจากบิตแมป
Graphics graphics = Graphics.fromImage(bitmap);
// กำหนดปากกาที่จะวาด
Pen penBlue = new Pen(Color.getBlue(), 4);
// วาดเส้นโค้ง
graphics.drawClosedCurve(penBlue, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });
// วาดส่วนโค้ง
Pen penRed = new Pen(Color.getRed(), 2);
graphics.drawArc(penRed, 0, 0, 700, 700, 0, 180);
// วาดวงรี
Pen penGreen = new Pen(Color.getGreen(), 2);
graphics.drawEllipse(penGreen, 10, 10, 500, 500);
// บันทึกบิตแมปเป็น PNG
bitmap.save("D:\\Files\\Curves.png");
วาดรูปหลายเหลี่ยมและสี่เหลี่ยมใน Java
เราสามารถวาดรูปหลายเหลี่ยมและสี่เหลี่ยมได้โดยทำตามขั้นตอนที่กล่าวไว้ข้างต้น อย่างไรก็ตาม เราจำเป็นต้องใช้วิธีการต่อไปนี้ในขั้นตอนที่ 4:
- DrawPolygon() วิธีการวาดรูปหลายเหลี่ยม
- DrawRectangle() วิธีการวาดรูปสี่เหลี่ยม
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดรูปหลายเหลี่ยมและสี่เหลี่ยมใน Java
// ตัวอย่างโค้ดนี้สาธิตวิธีการวาดรูปหลายเหลี่ยมและสี่เหลี่ยมผืนผ้า
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(1000, 800);
// เริ่มต้นกราฟิกจากบิตแมป
Graphics graphics = Graphics.fromImage(bitmap);
// กำหนดปากกาที่จะวาด
Pen penBlue = new Pen(Color.getBlue(), 4);
// วาดรูปหลายเหลี่ยม
graphics.drawPolygon(penBlue, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });
// วาดรูปสี่เหลี่ยมผืนผ้า
Pen penRed = new Pen(Color.getRed(), 2);
graphics.drawRectangle(penRed, 10, 10, 900, 700);
// บันทึกบิตแมปเป็น PNG
bitmap.save("D:\\Files\\Shapes.png");
วาดเส้นใน Java
ในทำนองเดียวกันเราสามารถวาดเส้นโดยทำตามขั้นตอนที่กล่าวไว้ข้างต้น อย่างไรก็ตาม เราจำเป็นต้องใช้เมธอด DrawLine() ในขั้นตอนที่ # 4 เพื่อวาดเส้น
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดเส้นใน Java
// ตัวอย่างโค้ดนี้สาธิตวิธีการวาดเส้น
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(1000, 800);
// เริ่มต้นกราฟิกจากบิตแมป
Graphics graphics = Graphics.fromImage(bitmap);
// กำหนดปากกาที่จะวาด
Pen pen = new Pen(Color.getBlue(), 4);
// วาดเส้น
graphics.drawLine(pen, 10, 700, 500, 10);
graphics.drawLine(pen, 500, 10, 990, 700);
// บันทึกบิตแมปเป็น PNG
bitmap.save("D:\\Files\\Lines.png");
วาดเส้นทางใน Java
เส้นทางในกราฟิกแบบเวกเตอร์แสดงถึงชุดของเส้นตรงเรียบๆ ที่กำหนดโดยจุดเริ่มต้นและจุดสิ้นสุด พร้อมด้วยจุดอื่นๆ เราสามารถวาดเส้นทางได้โดยทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาสบิตแมป
- เตรียมใช้งานออบเจ็กต์คลาสกราฟิกจากออบเจ็กต์บิตแมปที่สร้างขึ้นใหม่โดยใช้เมธอด fromImage()
- กำหนดวัตถุคลาสปากกาด้วยสีและขนาดที่ระบุ
- สร้างอินสแตนซ์ของคลาส GraphicsPath
- เพิ่มบรรทัดโดยใช้เมธอด addLine()
- หลังจากนั้นให้เรียกเมธอด DrawPath() ด้วยวัตถุ Pen และ GraphicsPath
- สุดท้าย ให้บันทึกภาพที่ส่งออกโดยใช้เมธอด save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดเส้นทางใน Java
// ตัวอย่างโค้ดนี้สาธิตวิธีการวาดเส้นทาง
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(1000, 800);
// เริ่มต้นกราฟิกจากบิตแมป
Graphics graphics = Graphics.fromImage(bitmap);
// กำหนดปากกาที่จะวาด
Pen pen = new Pen(Color.getBlue(), 4);
// เริ่มต้นเส้นทางกราฟิก
GraphicsPath path = new GraphicsPath();
// เพิ่มบรรทัดที่ 1
path.addLine(100, 100, 1000, 400);
// เพิ่มบรรทัดที่ 2
path.addLine(1000, 600, 300, 600);
// เพิ่มสี่เหลี่ยมผืนผ้า
path.addRectangle(new Rectangle(500, 350, 200, 400));
// เพิ่มวงรี
path.addEllipse(10, 250, 450, 300);
// วาดเส้นทาง
graphics.drawPath(pen, path);
// บันทึกบิตแมปเป็น PNG
bitmap.save("D:\\Files\\Shapes.png");
วาดขอบเขตการเติมใน Java
เราสามารถวาดขอบเขตการเติมได้โดยทำตามขั้นตอนด้านล่าง:
- สร้างอินสแตนซ์ของคลาสบิตแมป
- เตรียมใช้งานออบเจ็กต์คลาสกราฟิกจากออบเจ็กต์บิตแมปที่สร้างขึ้นใหม่โดยใช้เมธอด fromImage()
- สร้างอินสแตนซ์ของคลาส GraphicsPath
- เพิ่มรูปหลายเหลี่ยมโดยใช้วิธี addPolygon()
- สร้างอินสแตนซ์ของคลาสภูมิภาค
- เพิ่มวัตถุ GraphicsPath อื่น และเพิ่มสี่เหลี่ยมโดยใช้ addRectangle() วิธีการ
- เรียกวิธีการยกเว้น() เพื่อแยกเส้นทางภายในจากภูมิภาค
- จากนั้นกำหนดวัตถุคลาส SolidBrush ด้วยสีที่ระบุ
- หลังจากนั้น ให้เรียกเมธอด fillRegion() ด้วยอ็อบเจ็กต์ SolidBrush และ GraphicsPath
- สุดท้าย ให้บันทึกภาพที่ส่งออกโดยใช้เมธอด save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการวาดขอบเขตที่เต็มไปด้วยใน Java
// ตัวอย่างโค้ดนี้สาธิตวิธีการวาดขอบเขต
// สร้างบิตแมป
Bitmap bitmap = new Bitmap(1000, 800);
// เริ่มต้นกราฟิกจากบิตแมป
Graphics graphics = Graphics.fromImage(bitmap);
// เพิ่มรูปหลายเหลี่ยม
GraphicsPath path = new GraphicsPath();
path.addPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });
// เริ่มต้นภูมิภาค
Region region = new Region(path);
// เส้นทางกราฟิกภายใน
GraphicsPath innerPath = new GraphicsPath();
// เพิ่มสี่เหลี่ยมผืนผ้า
innerPath.addRectangle(new Rectangle(300, 300, 400, 200));
// ไม่รวมเส้นทางภายใน
region.exclude(innerPath);
// กำหนดแปรงที่เป็นของแข็ง
Brush brush = new SolidBrush(Color.getBlue());
// เติมภูมิภาค
graphics.fillRegion(brush, region);
// บันทึกบิตแมปเป็น PNG
bitmap.save("D:\\Files\\FillRegion.png");
รับใบอนุญาตฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวฟรี เพื่อลองใช้ Aspose. Drawing สำหรับ Java โดยไม่มีข้อจำกัดในการประเมิน
การเขียนโปรแกรมกราฟิกใน Java – ทรัพยากรฟรี
นอกจากการวาดเส้น เส้นทาง และสี่เหลี่ยมแล้ว คุณยังสามารถสำรวจคุณสมบัติอื่นๆ ของไลบรารีได้โดยใช้แหล่งข้อมูลด้านล่าง:
บทสรุป
ในบทความนี้ เราได้เรียนรู้พื้นฐานของการเขียนโปรแกรมกราฟิกใน Java โดยใช้ Aspose. Drawing สำหรับ Java เราได้เห็นวิธีการวาดรูปสี่เหลี่ยม วงรี เส้น และเส้นทางโดยทางโปรแกรมใน Java นอกจากนี้เรายังได้เรียนรู้วิธีสร้างและบันทึกรูปภาพบิตแมปเป็นรูปภาพ PNG ด้วยการทำตามขั้นตอนที่อธิบายไว้ในบทความนี้และตัวอย่างโค้ดที่ให้มา คุณสามารถสร้างกราฟิกแบบเวกเตอร์ที่น่าทึ่งในแอปพลิเคชัน Java ของคุณได้ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรัมการสนับสนุนฟรี