จัดการวัตถุอินค์ของงานนำเสนอด้วย C++
บทนำ
PowerPoint มีฟังก์ชันอินค์ที่ช่วยให้คุณวาดรูปที่ไม่เป็นมาตรฐาน ซึ่งสามารถใช้เพื่อไฮไลท์วัตถุอื่น ๆ แสดงการเชื่อมต่อและกระบวนการ และดึงดูดความสนใจไปยังรายการเฉพาะบนสไลด์
Aspose.Slides มีอินเทอร์เฟซ Aspose.Slides.Ink ซึ่งประกอบด้วยประเภทที่คุณต้องการเพื่อสร้างและจัดการวัตถุอินค์
ความแตกต่างระหว่างวัตถุปกติและวัตถุอินค์
วัตถุบนสไลด์ PowerPoint มักจะแสดงเป็นวัตถุรูปทรง (shape) วัตถุรูปทรงในรูปแบบที่ง่ายที่สุดคือคอนเทนเนอร์ที่กำหนดพื้นที่ของวัตถุเอง (กรอบของมัน) พร้อมกับคุณสมบัติต่าง ๆ ซึ่งรวมถึงขนาดพื้นที่คอนเทนเนอร์ รูปร่างของคอนเทนเนอร์ พื้นหลังของคอนเทนเนอร์ เป็นต้น สำหรับข้อมูลเพิ่มเติม ดูที่ Shape Layout Format
อย่างไรก็ตามเมื่อ PowerPoint ทำงานกับวัตถุอินค์ มันจะละเลยคุณสมบัติทั้งหมดของกรอบวัตถุ (คอนเทนเนอร์) ยกเว้นขนาดของมัน ขนาดของพื้นที่คอนเทนเนอร์จะกำหนดโดยค่า width และ height มาตรฐาน:

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

คุณสมบัติ Brush สำหรับการวาด
คุณสามารถใช้ brush เพื่อวาดเส้นที่เชื่อมต่อจุดขององค์ประกอบรอยเท้าได้ Brush มีสีและขนาดของตัวเอง ซึ่งสอดคล้องกับคุณสมบัติ Brush.Color และ Brush.Size
ตั้งค่าสี Brush อินค์
โค้ด C++ นี้แสดงวิธีตั้งค่าสีสำหรับ brush:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<IInk> ink = System::ExplicitCast<IInk>(pres->get_Slide(0)->get_Shape(0));
System::ArrayPtr<System::SharedPtr<IInkTrace>> traces = ink->get_Traces();
System::SharedPtr<IInkBrush> brush = traces[0]->get_Brush();
System::Drawing::Color brushColor = brush->get_Color();
brush->set_Color(System::Drawing::Color::get_Red());
ตั้งค่าขนาด Brush อินค์
โค้ด C++ นี้แสดงวิธีตั้งค่าขนาดสำหรับ brush:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
System::SharedPtr<IInk> ink = System::ExplicitCast<IInk>(pres->get_Slide(0)->get_Shape(0));
System::ArrayPtr<System::SharedPtr<IInkTrace>> traces = ink->get_Traces();
System::SharedPtr<IInkBrush> brush = traces[0]->get_Brush();
System::Drawing::SizeF brushSize = brush->get_Size();
brush->set_Size(System::Drawing::SizeF(5.0f, 10.0f));
โดยทั่วไป ความกว้างและความสูงของ brush จะไม่ตรงกัน จึงทำให้ PowerPoint ไม่แสดงขนาดของ brush (ส่วนข้อมูลจะเป็นสีเทา) แต่เมื่อความกว้างและความสูงของ brush ตรงกัน PowerPoint จะแสดงขนาดของมันดังนี้:

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

คอนเทนเนอร์ (กรอบ) ไม่พิจารณาขนาดของ brush — มันสมมติว่าความหนาของเส้นเป็นศูนย์ (ดูรูปภาพสุดท้าย)
ดังนั้น เพื่อกำหนดพื้นที่ที่มองเห็นได้ของวัตถุอินค์ทั้งหมด เราต้องพิจารณาขนาด brush ของวัตถุรอยเท้า ที่นี่วัตถุเป้าหมาย (วัตถุรอยเท้าข้อความที่เขียนด้วยมือ) ถูกสเกลให้ตรงกับขนาดของคอนเทนเนอร์ (กรอบ) เมื่อขนาดของคอนเทนเนอร์ (กรอบ) เปลี่ยนแปลง ขนาดของ brush จะคงที่และในทางกลับกัน

PowerPoint แสดงพฤติกรรมเดียวกันเมื่อทำงานกับข้อความ:

Further reading
- เพื่ออ่านเกี่ยวกับรูปทรงโดยทั่วไป ให้ดูส่วน PowerPoint Shapes
- สำหรับข้อมูลเพิ่มเติมเกี่ยวกับค่าที่มีประสิทธิภาพ ให้ดู Shape Effective Properties