การวาดภาพโดยใช้ 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 จะถูกสร้างเป็นส่วนชุดในการใช้คำสั่งเพื่อให้แน่ใจว่าพวกเขาถูกกำจัดอย่างถูกต้อง