สร้างภาพขนาดย่อของรูปทรงงานนำเสนอใน C++

บทนำ

Aspose.Slides ใช้สร้างไฟล์งานนำเสนอซึ่งแต่ละหน้าเป็นสไลด์ สไลด์เหล่านี้สามารถดูได้โดยเปิดไฟล์งานนำเสนอด้วย Microsoft PowerPoint แต่บางครั้งนักพัฒนาอาจต้องการดูภาพของรูปทรงแยกต่างหากในโปรแกรมดูภาพ ในกรณีดังกล่าว Aspose.Slides ช่วยคุณสร้างภาพขนาดย่อของรูปทรงสไลด์ วิธีการใช้คุณลักษณะนี้อธิบายในบทความนี้
บทความนี้อธิบายวิธีสร้างภาพขนาดย่อของสไลด์ในหลายวิธี:

  • สร้างภาพขนาดย่อของรูปทรงภายในสไลด์
  • สร้างภาพขนาดย่อของรูปทรงสำหรับรูปทรงสไลด์โดยกำหนดขนาดตามผู้ใช้
  • สร้างภาพขนาดย่อของรูปทรงภายในขอบเขตของลักษณะการแสดงผลของรูปทรง

สร้างภาพขนาดย่อของรูปทรงจากสไลด์

เพื่อสร้างภาพขนาดย่อของรูปทรงจากสไลด์ใด ๆ ด้วย Aspose.Slides for C++:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับออปเจ็กต์อ้างอิงของสไลด์ใด ๆ ด้วย ID หรือดัชนีของมัน
  3. ดึงภาพขนาดย่อของรูปทรงจากสไลด์อ้างอิงด้วยสเกลเริ่มต้น
  4. บันทึกภาพขนาดย่อไปยังรูปแบบภาพที่ต้องการใดก็ได้

ตัวอย่างด้านล่างแสดงการสร้างภาพขนาดย่อของรูปทรง

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage();
image->Save(u"Shape_thumbnail_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

สร้างภาพขนาดย่อด้วยปัจจัยการสเกลที่กำหนดโดยผู้ใช้

เพื่อสร้างภาพขนาดย่อของรูปทรงสไลด์ใด ๆ ด้วย Aspose.Slides for C++:

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับออปเจ็กต์อ้างอิงของสไลด์ใด ๆ ด้วย ID หรือดัชนีของมัน
  3. ดึงภาพขนาดย่อของสไลด์อ้างอิงโดยใช้ขอบเขตของรูปทรง
  4. บันทึกภาพขนาดย่อในรูปแบบภาพที่ต้องการใดก็ได้

ตัวอย่างด้านล่างแสดงการสร้างภาพขนาดย่อด้วยปัจจัยการสเกลที่กำหนดโดยผู้ใช้

auto bounds = ShapeThumbnailBounds::Shape;
auto scale = 1; // การสเกลตามแกน X และ Y.

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage(bounds, scale, scale);
image->Save(u"Scaling Factor Thumbnail_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

สร้างภาพขนาดย่อของรูปทรงตามขอบเขตของลักษณะการแสดงผล

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

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับออปเจ็กต์อ้างอิงของสไลด์ใด ๆ ด้วย ID หรือดัชนีของมัน
  3. ดึงภาพขนาดย่อของสไลด์อ้างอิงโดยใช้ขอบเขตของรูปทรงเป็นลักษณะการแสดงผล
  4. บันทึกภาพขนาดย่อในรูปแบบภาพที่ต้องการใดก็ได้

ตัวอย่างด้านล่างแสดงการสร้างภาพขนาดย่อโดยกำหนดปัจจัยการสเกลตามผู้ใช้

auto bounds = ShapeThumbnailBounds::Appearance;
auto scale = 1; // การสเกลตามแกน X และ Y.

auto presentation = MakeObject<Presentation>(u"HelloWorld.pptx");
auto shape = presentation->get_Slide(0)->get_Shape(0);

auto image = shape->GetImage(bounds, scale, scale);
image->Save(u"Shape_thumbnail_Bound_Shape_out.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

คำถามที่พบบ่อย

รูปแบบภาพใดบ้างที่สามารถใช้เมื่อบันทึกภาพขนาดย่อของรูปทรง?
PNG, JPEG, BMP, GIF, TIFF, และอื่น ๆ รูปทรงยังสามารถ ส่งออกเป็นเวกเตอร์ SVG โดยบันทึกเนื้อหาของรูปทรงเป็น SVG.

ความแตกต่างระหว่างขอบเขต Shape กับ Appearance เมื่อเรนเดอร์ภาพขนาดย่อคืออะไร?
Shape ใช้รูปทรงเรขาคณิตของรูปทรง; Appearance พิจารณา เอฟเฟกต์ภาพ (เงา, แสงเรืองแสง, ฯลฯ) เข้าไว้ด้วย

จะเกิดอะไรขึ้นหากรูปทรงถูกทำเครื่องหมายว่า hidden? จะยังคงเรนเดอร์เป็นภาพขนาดย่อหรือไม่?
รูปทรงที่ถูกซ่อนยังคงเป็นส่วนหนึ่งของโมเดลและสามารถเรนเดอร์ได้; ธง hidden มีผลต่อการแสดงสไลด์โชว์แต่ไม่ป้องกันการสร้างภาพของรูปทรง

รูปกลุ่ม, แผนภูมิ, SmartArt, และวัตถุซับซ้อนอื่น ๆ รองรับหรือไม่?
ใช่. วัตถุใด ๆ ที่เป็นตัวแทนเป็น Shape (รวมถึง GroupShape, Chart, และ SmartArt) สามารถบันทึกเป็นภาพขนาดย่อหรือเป็น SVG ได้

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