สร้างภาพย่อของรูปร่างพรีเซนเทชันใน Java
บทนำ
Aspose.Slides for Java สามารถใช้สร้างไฟล์พรีเซนเทชันที่แต่ละหน้าตรงกับสไลด์ได้ สไลด์สามารถดูได้โดยเปิดไฟล์พรีเซนเทชันด้วย Microsoft PowerPoint อย่างไรก็ตามนักพัฒนาบางครั้งต้องการดูรูปภาพของรูปร่างแยกออกในโปรแกรมดูรูปภาพ ในกรณีดังกล่าว Aspose.Slides for Java ช่วยให้พวกเขาสร้างภาพย่อของรูปร่างในสไลด์ได้
บทความนี้อธิบายวิธีการสร้างภาพย่อของสไลด์ในหลายวิธี:
- สร้างภาพย่อของรูปร่างภายในสไลด์
- สร้างภาพย่อของรูปร่างในสไลด์โดยกำหนดขนาดตามผู้ใช้
- สร้างภาพย่อของรูปร่างภายในขอบเขตการแสดงผลของรูปร่าง
สร้างภาพย่อของรูปร่างจากสไลด์
เพื่อสร้างภาพย่อของรูปร่างจากสไลด์ใด ๆ ด้วย Aspose.Slides for Java ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงของสไลด์ใด ๆ ด้วย ID หรือ index ของมัน
- รับภาพย่อของรูปร่าง ของสไลด์ที่อ้างอิงโดยใช้สเกลค่าเริ่มต้น
- บันทึกภาพย่อในรูปแบบภาพที่คุณต้องการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างภาพย่อของรูปร่างจากสไลด์:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แสดงไฟล์พรีเซนเทชัน
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// สร้างภาพเต็มสเกล
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
// บันทึกภาพลงดิสก์ในรูปแบบ PNG
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
สร้างภาพย่อด้วยอัตราส่วนการขยายที่กำหนดโดยผู้ใช้
เพื่อสร้างภาพย่อของรูปร่างในสไลด์ด้วย Aspose.Slides for Java ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงของสไลด์ใด ๆ ด้วย ID หรือ index ของมัน
- รับภาพย่อของรูปร่าง ของสไลด์ที่อ้างอิงด้วยขนาดที่กำหนดโดยผู้ใช้
- บันทึกภาพย่อในรูปแบบภาพที่คุณต้องการ
โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างภาพย่อของรูปร่างโดยอิงจากอัตราส่วนการขยายที่กำหนด:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์พรีเซนเทชัน
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// สร้างภาพเต็มสเกล
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Shape, 1, 1);
// บันทึกภาพลงดิสก์ในรูปแบบ PNG
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
สร้างภาพย่อของรูปร่างตามขอบเขตการแสดงผล
วิธีนี้ในการสร้างภาพย่อของรูปร่างช่วยให้นักพัฒนาสามารถสร้างภาพย่อภายในขอบเขตการแสดงผลของรูปร่างได้ โดยคำนึงถึงเอฟเฟกต์ทั้งหมดของรูปร่าง ภาพย่อที่สร้างจะถูกจำกัดโดยขอบเขตของสไลด์ เพื่อสร้างภาพย่อของรูปร่างสไลด์ภายในขอบเขตการแสดงผลทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงอ้างอิงของสไลด์ใด ๆ ด้วย ID หรือ index ของมัน
- ดึงภาพย่อของสไลด์ที่อ้างอิงโดยใช้ขอบเขตรูปร่างเป็นการแสดงผล
- บันทึกภาพย่อในรูปแบบภาพที่คุณต้องการ
โค้ดตัวอย่างต่อไปนี้อ้างอิงจากขั้นตอนข้างต้น:
// สร้างอินสแตนซ์ของคลาส Presentation ที่แทนไฟล์พรีเซนเทชัน
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// สร้างภาพเต็มสเกล
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Appearance, 1, 1);
// บันทึกภาพลงดิสก์ในรูปแบบ PNG
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
คำถามที่พบบ่อย
รูปแบบภาพใดบ้างที่สามารถใช้เมื่อบันทึกภาพย่อของรูปร่าง?
รูปแบบ PNG, JPEG, BMP, GIF, TIFF, เป็นต้น รูปร่างยังสามารถ ส่งออกเป็นเวกเตอร์ SVG โดยบันทึกเนื้อหารูปร่างเป็น SVG.
ความแตกต่างระหว่างขอบเขต Shape และ Appearance เมื่อเรนเดอร์ภาพย่อคืออะไร?
Shape ใช้เรขาคณิตของรูปร่าง; Appearance พิจารณา เอฟเฟกต์ภาพ (เงา, ส่องแสง, ฯลฯ) ด้วย
จะเกิดอะไรขึ้นหากรูปร่างถูกทำเครื่องหมายว่าเป็น hidden? จะยังคงเรนเดอร์เป็นภาพย่อหรือไม่?
รูปร่างที่ซ่อนอยู่ยังคงเป็นส่วนหนึ่งของโมเดลและสามารถเรนเดอร์ได้; ธง hidden มีผลต่อการแสดงผลสไลด์โชว์เท่านั้น แต่ไม่ป้องกันการสร้างภาพของรูปร่าง
รองรับรูปแบบกลุ่ม, แผนภูมิ, SmartArt และวัตถุซับซ้อนอื่น ๆ หรือไม่?
ใช่ วัตถุใด ๆ ที่แสดงเป็น Shape (รวมถึง GroupShape, Chart, และ SmartArt) สามารถบันทึกเป็นภาพย่อหรือเป็น SVG ได้
ฟอนต์ที่ติดตั้งในระบบส่งผลต่อคุณภาพของภาพย่อสำหรับรูปร่างข้อความหรือไม่?
ใช่ คุณควร จัดหาแบบอักษรที่จำเป็น (หรือ กำหนดการทดแทนแบบอักษร) เพื่อหลีกเลี่ยงการเปลี่ยนฟอนต์โดยไม่ต้องการและการจัดข้อความซ้ำ