แปลงสไลด์พรีเซนเทชั่นเป็นรูปภาพบน Android
คำนำ
Aspose.Slides for Android via Java ช่วยให้คุณแปลงสไลด์พรีเซนต์เทชัน PowerPoint และ OpenDocument ไปเป็นรูปภาพหลายรูปแบบได้อย่างง่ายดาย เช่น BMP, PNG, JPG (JPEG), GIF และรูปแบบอื่น ๆ
เพื่อแปลงสไลด์เป็นรูปภาพ ให้ทำตามขั้นตอนต่อไปนี้:
- กำหนดการตั้งค่าการแปลงที่ต้องการและเลือกสไลด์ที่ต้องการส่งออกโดยใช้:
- อินเทอร์เฟซ ITiffOptions หรือ
- อินเทอร์เฟซ IRenderingOptions
- สร้างรูปภาพของสไลด์โดยเรียกเมธอด getImage
ใน Aspose.Slides for Android via Java, อินเทอร์เฟซ IImage เป็นตัวกลางที่ให้คุณทำงานกับภาพที่นิยามด้วยข้อมูลพิกเซล คุณสามารถใช้อินเทอร์เฟซนี้เพื่อบันทึกภาพในหลายรูปแบบ (BMP, JPG, PNG ฯลฯ)
แปลงสไลด์เป็นบิตแมพและบันทึกรูปภาพเป็น PNG
คุณสามารถแปลงสไลด์เป็นอ็อบเจกต์บิตแมพและใช้โดยตรงในแอปพลิเคชันของคุณ หรือแปลงสไลด์เป็นบิตแมพแล้วบันทึกเป็น JPEG หรือรูปแบบอื่นตามต้องการ
โค้ดนี้สาธิตการแปลงสไลด์แรกของพรีเซนต์เทชันเป็นอ็อบเจกต์บิตแมพและบันทึกรูปภาพเป็นรูปแบบ PNG:
Presentation presentation = new Presentation("Presentation.pptx");
try {
// แปลงสไลด์แรกในพรีเซนเทชันเป็นบิตแมพ.
IImage image = presentation.getSlides().get_Item(0).getImage();
try {
// บันทึกรูปภาพในรูปแบบ PNG.
image.save("Slide_0.png", ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
แปลงสไลด์เป็นรูปภาพด้วยขนาดที่กำหนดเอง
คุณอาจต้องการรูปภาพที่มีขนาดเฉพาะ โดยใช้ overload ของเมธอด getImage คุณสามารถแปลงสไลด์เป็นรูปภาพด้วยความกว้างและความสูงที่กำหนด
ตัวอย่างโค้ดนี้แสดงวิธีทำ:
Size imageSize = new Size(1820, 1040);
Presentation presentation = new Presentation("Presentation.pptx");
try {
// แปลงสไลด์แรกในพรีเซนเทชันเป็นบิตแมพด้วยขนาดที่ระบุ.
IImage image = presentation.getSlides().get_Item(0).getImage(imageSize);
try {
// บันทึกรูปภาพในรูปแบบ JPEG.
image.save("Slide_0.jpg", ImageFormat.Jpeg);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
แปลงสไลด์พร้อมโน๊ตและคอมเมนต์เป็นรูปภาพ
บางสไลด์อาจมีโน๊ตและคอมเมนต์
Aspose.Slides มีอินเทอร์เฟซสองตัว—ITiffOptions และ IRenderingOptions—ที่ให้คุณควบคุมการเรนเดอร์สไลด์เป็นรูปภาพ ทั้งสองอินเทอร์เฟซมีเมธอด setSlidesLayoutOptions ซึ่งช่วยให้คุณกำหนดการเรนเดอร์ของโน๊ตและคอมเมนต์บนสไลด์เมื่อแปลงเป็นรูปภาพ
ด้วยคลาส NotesCommentsLayoutingOptions คุณสามารถระบุตำแหน่งที่ต้องการของโน๊ตและคอมเมนต์ในรูปภาพที่ได้
โค้ดนี้สาธิตการแปลงสไลด์พร้อมโน๊ตและคอมเมนต์:
float scaleX = 2;
float scaleY = scaleX;
// โหลดไฟล์พรีเซนเทชัน.
Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
NotesCommentsLayoutingOptions notesCommentsOptions = new NotesCommentsLayoutingOptions();
notesCommentsOptions.setNotesPosition(NotesPositions.BottomTruncated); // ตั้งค่าตำแหน่งของโน๊ต.
notesCommentsOptions.setCommentsPosition(CommentsPositions.Right); // ตั้งค่าตำแหน่งของคอมเมนต์.
notesCommentsOptions.setCommentsAreaWidth(500); // ตั้งค่าความกว้างของพื้นที่คอมเมนต์.
notesCommentsOptions.setCommentsAreaColor(Color.LTGRAY); // ตั้งค่าสีของพื้นที่คอมเมนต์.
// สร้างตัวเลือกการเรนเดอร์.
RenderingOptions options = new RenderingOptions();
options.setSlidesLayoutOptions(notesCommentsOptions);
// แปลงสไลด์แรกของพรีเซนเทชันเป็นภาพ.
IImage image = presentation.getSlides().get_Item(0).getImage(options, scaleX, scaleY);
try {
// บันทึกรูปภาพในรูปแบบ GIF.
image.save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Note
ในกระบวนการแปลงสไลด์เป็นรูปภาพใด ๆ เมธอด setNotesPosition ไม่สามารถใช้ค่าBottomFull (เพื่อระบุตำแหน่งของโน๊ต) ได้ เนื่องจากข้อความของโน๊ตอาจยาวเกินไปจนไม่สามารถใส่ลงในขนาดรูปภาพที่กำหนดได้
แปลงสไลด์เป็นรูปภาพโดยใช้ TIFF Options
อินเทอร์เฟซ ITiffOptions ให้การควบคุมที่ละเอียดมากขึ้นสำหรับรูปภาพ TIFF ที่ได้ โดยสามารถกำหนดพารามิเตอร์เช่น ขนาด, ความละเอียด, พาเลตสี ฯลฯ
โค้ดนี้สาธิตกระบวนการแปลงโดยใช้ TIFF Options เพื่อสร้างภาพขาว-ดำที่ความละเอียด 300 DPI และขนาด 2160 × 2800:
// โหลดไฟล์พรีเซนเทชัน.
Presentation presentation = new Presentation("sample.pptx");
try {
// ดึงสไลด์แรกจากพรีเซนเทชัน.
ISlide slide = presentation.getSlides().get_Item(0);
// กำหนดค่าการตั้งค่าของภาพ TIFF ที่ส่งออก.
TiffOptions tiffOptions = new TiffOptions();
tiffOptions.setImageSize(new Size(2160, 2880)); // ตั้งค่าขนาดของภาพ.
tiffOptions.setPixelFormat(ImagePixelFormat.Format1bppIndexed); // ตั้งค่ารูปแบบพิกเซล (สีดำและขาว).
tiffOptions.setDpiX(300); // ตั้งค่าความละเอียดในแนวนอน.
tiffOptions.setDpiY(300); // ตั้งค่าความละเอียดในแนวตั้ง.
// แปลงสไลด์เป็นภาพด้วยตัวเลือกที่ระบุ.
IImage image = slide.getImage(tiffOptions);
try {
// บันทึกภาพในรูปแบบ TIFF.
image.save("output.tiff", ImageFormat.Tiff);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
แปลงสไลด์ทั้งหมดเป็นรูปภาพ
Aspose.Slides ให้คุณแปลงสไลด์ทั้งหมดในพรีเซนต์เทชันเป็นรูปภาพ ซึ่งหมายความว่าพรีเซนต์เทชันทั้งหมดจะถูกแปลงเป็นชุดของรูปภาพ
ตัวอย่างโค้ดนี้แสดงวิธีแปลงสไลด์ทั้งหมดในพรีเซนต์เทชันเป็นรูปภาพด้วย Java:
float scaleX = 2;
float scaleY = scaleX;
Presentation presentation = new Presentation("Presentation.pptx");
try {
// เรนเดอร์พรีเซนเทชันเป็นรูปภาพสไลด์ต่อสไลด์.
for (int i = 0 ; i < presentation.getSlides().size(); i++)
{
// ควบคุมสไลด์ที่ซ่อนอยู่ (ไม่เรนเดอร์สไลด์ที่ซ่อน).
if (presentation.getSlides().get_Item(i).getHidden())
continue;
// แปลงสไลด์เป็นภาพ.
IImage image = presentation.getSlides().get_Item(i).getImage(scaleX, scaleY);
try {
// บันทึกรูปภาพในรูปแบบ JPEG.
image.save("Slide_" + i + ".jpg", ImageFormat.Jpeg);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
คำถามที่พบบ่อย
Aspose.Slides รองรับการเรนเดอร์สไลด์พร้อมแอนิเมชันหรือไม่?
ไม่, เมธอด getImage บันทึกรูปภาพสไลด์แบบนิ่งเท่านั้น ไม่รวมแอนิเมชัน
สามารถส่งออกสไลด์ที่ถูกซ่อนไปเป็นรูปภาพได้หรือไม่?
ได้, สไลด์ที่ซ่อนอยู่สามารถประมวลผลได้เช่นเดียวกับสไลด์ปกติ เพียงตรวจให้แน่ใจว่ามีการรวมสไลด์เหล่านั้นในลูปการประมวลผล
สามารถบันทึกรูปภาพพร้อมเงาและเอฟเฟกต์ได้หรือไม่?
ได้, Aspose.Slides รองรับการเรนเดอร์เงา, ความโปร่งใส, และเอฟเฟกต์กราฟิกอื่น ๆ เมื่อบันทึกสไลด์เป็นรูปภาพ