การวาดภาพโดยใช้ GraphicsPath

การวาดภาพโดยใช้ GraphicsPath

คลาส GraphicsPath มีความรับผิดชอบในการสร้างและบำรุงรักษาเส้นทางของภาพ คลาส GraphicsPath ไม่มีการอ้างอิงไปยังภาพและไม่เปลี่ยนแปลงภาพเอง แทนที่นั้น มันสามารถพิจารณารวมกับวัตถุที่มีข้อมูลเมตาดาต้าที่อธิบายเส้นทางที่คลาส Graphics สามารถวาดได้ คลาส GraphicsPath ใช้เหล่าหมายเลข เช่น เมื่อรูปทรงชนิดหนึ่งถูกเป็นส่วนพวกมีลักษณะของเส้นที่เชื่อมต่อและเส้นโค้งหรือรูปพื้นฐานทางเรขาคณิต รูปทรงแต่ละรูปอาจถูกแบ่งเป็นเซ็กเมนต์ของรูปทรง คุณสามารถเพิ่ม ลบ และเปลี่ยนรูปทรงหรือรูปพื้นฐานที่ต่างกันในวัตถุ GraphicsPath เมื่อ GraphicsPath ถูกอธิบายเสร็จสมบูรณ์แล้ว ใช้เมธอดของคลาส Graphics ที่เกี่ยวข้อง (วาดเส้นทางและเติมอุนภาค) เพื่อวาดหรือเติมเส้นทาง คลาส Graphics จะนำเซกเมนต์รูปทรงแต่ละตัวมาวาดเพื่อสร้างภาพสุดท้าย

การวาดโดยใช้คลาส GraphicsPath

ด้านล่างนี้เป็นตัวอย่างที่แสดงการใช้คลาส GraphicsPath ตัวอย่างซอร์สโค้ดถูกแบ่งออกเป็นส่วนต่างๆ เพื่อทำให้ตามและเข้าใจง่าย ขั้นตอนละขั้นตอน ตัวอย่างแสดงให้คุณเห็นวิธีการ:

  • สร้างภาพ
  • กำหนดค่าเริ่มต้นให้กับออบเจกต์ Graphics
  • เคลียร์พื้นผิว
  • สร้างอินสแตนซ์ของ GraphicsPath
  • สร้างรูปทรง
  • เพิ่มรูปร่างในรูปทรง
  • สร้างอาร์เรย์รูปร่าง
  • วาดเส้นทาง
  • เติมเส้นทาง

การวาดภาพโดยใช้ GraphicsPath: ตัวอย่างโปรแกรม

GraphicsPath : สร้างภาพ

เริ่มต้นโดยการสร้างภาพโดยใช้วิธีใดก็ได้ที่อธิบายไว้ในการสร้างไฟล์

GraphicsPath : กำหนดค่าเริ่มต้นให้กับออบเจกต์ Graphics

สร้างและกำหนดค่าเริ่มต้นให้กับออบเจกต์ Graphics โดยการส่งออบเจกต์ภาพเข้าไปในคอนสตรักเตอร์ของมัน

GraphicsPath : เคลียร์พื้นผิว

เคลียร์พื้นผิวของกราฟิกด้วยการเรียกใช้เมธอด Clear ของคลาส Graphics และส่งสีเป็นพารามิเตอร์ วิธีนี้จะเติมพื้นผิวกราฟิกด้วยสีที่ส่งผ่านเป็นอาร์กิวเมนท์

GraphicsPath : สร้างอินสแตนซ์ของ GraphicsPath

สร้างอินสแตนซ์ของ GraphicsPath โดยกำหนด GraphicsPath เป็น Alternate โดยปริยาย โหมดนี้กำหนดว่าจะเติมสีภายในรูปทรงปิดตัวอย่างเช่นการอธิบาย

GraphicsPath : สร้างรูปทรง

สร้างอินสแตนซ์ของคลาส Figure ตามที่อธิบายไว้ก่อนหน้า Figure สามารถรวม Shape และ Shape อยู่ในเนมสเปส Aspose.PSD.Shapes

GraphicsPath : เพิ่มรูปร่างในรูปทรง

เมธอด Add Shapes ที่เปิดเผยโดยคลาส Figure ช่วยให้คุณสามารถเพิ่มรูปร่างในรูปทรง ในตัวอย่างโค้ดด้านล่างมีการเพิ่มรูปร่างหลายรูป式ในออบเจกต์ Figure

GraphicsPath : เพิ่มรูปร่างในอาร์เรย์

สามารถเพิ่มรูปร่างหลายรูปและในเอกสาร GraphicsPath โดยใช้เมธอด AddFigures ที่เปิดเผยโดยคลาส GraphicsPath วิธีนี้รับอาร์เรย์ของรูปทรงเป็นพารามิเตอร์

GraphicsPath : วาดเส้นทาง

วาด GraphicsPath โดยใช้เมธอด DrawPath ที่เปิดเผยโดยคลาส Graphics วิธีนี้รับพารามิเตอร์สองตัว พารามิเตอร์แรกคือออบเจกต์ของคลาส Pen ซึ่งกำหนดสี ความกว้าง และสไตล์ของเส้นทาง พารามิเตอร์ที่สองคือออบเจกต์ของคลาส GraphicsPath ที่แทนเส้นทางเอง

GraphicsPath : เติมเส้นทาง

คุณสามารถเติมเส้นทางโดยการส่งออบเจกต์ GraphicsPath ไปยังเมธอด Fill Paths ที่เปิดเผยโดยคลาส Graphics เมธอด Fill Paths จะเติมเส้นทางตามโหมดการเติมซึ่งเป็น alternate หรือ winding ที่เซ็ตไว้สำหรับเส้นทาง ถ้าเส้นทางมีรูปทรงที่เปิดอยู่ เส้นทางจะเติมเส้นทางเหมือนกับว่ารูปทรงเหล่านั้นได้ถูกปิดไว้

เมธอด Fill Paths รับพารามิเตอร์สองตัว พารามิเตอร์แรกเป็นออบเจกต์ของคลาสแปรสใดๆ จากเนมสเปส Aspose.PSD.Brushes พารามิเตอร์ที่สองคือเส้นทางเอง ในส่วนของตัวอย่างนี้ ให้ใช้ HatchBrush ซึ่งเป็นปัญหาจัตุรัสที่มีสไตล์ hatch สีหน้าจัตุรัส และสีพื้นหลัง ก่อนส่งออบเจกต์ HatchBrush ไปยังเมธอด Fill Paths ต้องกำหนดคุณสมบัติของมัน

GraphicsPath : แหล่งข้อมูลเต็ม

String dataDir = Utils.getDataDir(DrawingUsingGraphicsPath.class) + "DrawingImages/";
// Create an instance of Image and initialize an instance of Graphics
try (PsdImage image = new PsdImage(500, 500)) {
// create graphics surface.
Graphics graphics = new Graphics(image);
graphics.clear(Color.getWhite());
// Create an instance of GraphicsPath and Instance of Figure, add EllipseShape, RectangleShape and TextShape to the figure
GraphicsPath graphicspath = new GraphicsPath();
Figure figure = new Figure();
figure.addShape(new EllipseShape(new RectangleF(0, 0, 499, 499)));
figure.addShape(new RectangleShape(new RectangleF(0, 0, 499, 499)));
figure.addShape(new TextShape("Aspose.PSD", new RectangleF(170, 225, 170, 100), new Font("Arial", 20), StringFormat.getGenericTypographic()));
Figure[] fig = {figure};
graphicspath.addFigures(fig);
graphics.drawPath(new Pen(Color.getBlue()), graphicspath);
// Create an instance of HatchBrush and set its properties also Fill path by supplying the brush and GraphicsPath objects
HatchBrush hatchbrush = new HatchBrush();
hatchbrush.setBackgroundColor(Color.getBrown());
hatchbrush.setForegroundColor(Color.getBlue());
hatchbrush.setHatchStyle(HatchStyle.Vertical);
graphics.fillPath(hatchbrush, graphicspath);
image.save(dataDir + "DrawingUsingGraphicsPath_output.psd");
}

คลาสทั้งหมดที่ดำเนินการที่อิมเพลเมนท์ IDisposable จะถูกสร้างเป็นส่วนชุดในการใช้คำสั่งเพื่อให้แน่ใจว่าพวกเขาถูกกำจัดอย่างถูกต้อง