เพิ่มประสิทธิภาพการจัดการภาพในงานนำเสนอด้วย .NET
บทนำ
ภาพทำให้การนำเสนอมีความน่าสนใจและดึงดูดมากขึ้น ใน Microsoft PowerPoint คุณสามารถแทรกรูปภาพจากไฟล์ อินเทอร์เน็ต หรือแหล่งอื่น ๆ ลงในสไลด์ได้เช่นกัน อย่างเดียวกัน Aspose.Slides ก็อนุญาตให้คุณเพิ่มภาพลงในสไลด์ของการนำเสนอผ่านขั้นตอนต่าง ๆ
Tip
Aspose มีตัวแปลงฟรี—JPEG to PowerPoint และ PNG to PowerPoint—ซึ่งช่วยให้ผู้ใช้สร้างการนำเสนออย่างรวดเร็วจากภาพInfo
หากคุณต้องการเพิ่มภาพเป็นออบเจกต์กรอบ—โดยเฉพาะหากคุณตั้งใจใช้ตัวเลือกการจัดรูปแบบมาตรฐานเพื่อปรับขนาด เพิ่มเอฟเฟกต์ ฯลฯ—ดูที่ Picture FrameNote
คุณสามารถจัดการการดำเนินการอินพุต/เอาต์พุตที่เกี่ยวกับภาพและการนำเสนอ PowerPoint เพื่อแปลงภาพจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่งได้ ดูหน้าต่อไปนี้: แปลง image to JPG; แปลง JPG to image; แปลง JPG to PNG, แปลง PNG to JPG; แปลง PNG to SVG, แปลง SVG to PNGAspose.Slides รองรับการดำเนินการกับภาพในรูปแบบที่เป็นที่นิยมเหล่านี้: JPEG, PNG, BMP, GIF, และอื่น ๆ
เพิ่มภาพที่จัดเก็บไว้ในเครื่องลงสไลด์
คุณสามารถเพิ่มภาพหนึ่งหรือหลายภาพจากคอมพิวเตอร์ของคุณลงในสไลด์ของการนำเสนอ โค้ดตัวอย่างใน C# แสดงวิธีการเพิ่มภาพลงในสไลด์:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
เพิ่มภาพจากเว็บลงสไลด์
หากภาพที่คุณต้องการเพิ่มลงในสไลด์ไม่มีในคอมพิวเตอร์ของคุณคุณสามารถเพิ่มภาพโดยตรงจากเว็บได้
โค้ดตัวอย่างนี้แสดงวิธีการเพิ่มภาพจากเว็บลงในสไลด์ด้วย C#:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
byte[] imageData;
using (WebClient webClient = new WebClient())
{
imageData = webClient.DownloadData(new Uri("[REPLACE WITH URL]"));
}
IPPImage image = pres.Images.AddImage(imageData);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
เพิ่มภาพลงใน Slide Master
Slide Master คือสไลด์ระดับบนสุดที่เก็บและควบคุมข้อมูล (ธีม, เค้าโครง ฯลฯ) ของสไลด์ทั้งหมดใต้มัน ดังนั้นเมื่อคุณเพิ่มภาพลงใน Slide Master ภาพนั้นจะปรากฏบนทุกสไลด์ที่ใช้ Slide Master นั้น
โค้ดตัวอย่าง C# นี้แสดงวิธีการเพิ่มภาพลงใน Slide Master:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides[0];
IMasterSlide masterSlide = slide.LayoutSlide.MasterSlide;
IPPImage image = pres.Images.AddImage(File.ReadAllBytes("image.png"));
masterSlide.Shapes.AddPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
pres.Save("pres.pptx", SaveFormat.Pptx);
}
เพิ่มภาพเป็นพื้นหลังของสไลด์
คุณอาจต้องการใช้รูปภาพเป็นพื้นหลังสำหรับสไลด์เดียวหรือหลายสไลด์ ในกรณีนั้นคุณต้องดู Setting Images as Backgrounds for Slides
เพิ่ม SVG ลงในงานนำเสนอ
คุณสามารถเพิ่มหรือแทรกรูปภาพใด ๆ ลงในงานนำเสนอโดยใช้เมธอด AddPictureFrame ที่เป็นส่วนหนึ่งของอินเทอร์เฟซ IShapeCollection
เพื่อสร้างออบเจกต์ภาพจาก SVG ให้ทำตามขั้นตอนต่อไปนี้:
- สร้างออบเจกต์ SvgImage เพื่อนำเข้าไปยัง ImageShapeCollection
- สร้างออบเจกต์ PPImage จาก ISvgImage
- สร้างออบเจกต์ PictureFrame ด้วยการใช้ IPPImage interface
โค้ดตัวอย่างนี้แสดงวิธีการดำเนินการตามขั้นตอนข้างต้นเพื่อเพิ่มภาพ SVG ลงในงานนำเสนอ:
// เส้นทางไปยังไดเรกทอรีเอกสาร
string dataDir = @"D:\Documents\";
// ชื่อไฟล์ SVG ต้นฉบับ
string svgFileName = dataDir + "sample.svg";
// ชื่อไฟล์งานนำเสนอผลลัพธ์
string outPptxPath = dataDir + "presentation.pptx";
// สร้างงานนำเสนอใหม่
using (var p = new Presentation())
{
// อ่านเนื้อหาไฟล์ SVG
string svgContent = File.ReadAllText(svgFileName);
// สร้างอ็อบเจกต์ SvgImage
ISvgImage svgImage = new SvgImage(svgContent);
// สร้างอ็อบเจกต์ PPImage
IPPImage ppImage = p.Images.AddImage(svgImage);
// สร้าง PictureFrame ใหม่
p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 200, 100, ppImage.Width, ppImage.Height, ppImage);
// บันทึกงานนำเสนอในรูปแบบ PPTX
p.Save(outPptxPath, SaveFormat.Pptx);
}
แปลง SVG เป็นชุดของรูปทรง
การแปลง SVG เป็นชุดของรูปทรงของ Aspose.Slides มีลักษณะคล้ายกับฟังก์ชันของ PowerPoint ที่ใช้ทำงานกับภาพ SVG:

ฟังก์ชันนี้ให้บริการโดยหนึ่งใน overload ของเมธอด AddGroupShape ของอินเทอร์เฟซ IShapeCollection ที่รับออบเจกต์ ISvgImage เป็นอาร์กิวเมนต์แรก
โค้ดตัวอย่างนี้แสดงวิธีใช้เมธอดที่อธิบายเพื่อแปลงไฟล์ SVG เป็นชุดของรูปทรง:
// เส้นทางไปยังไดเรกทอรีเอกสาร
string dataDir = @"D:\Documents\";
// ชื่อไฟล์ SVG ต้นฉบับ
string svgFileName = dataDir + "sample.svg";
// ชื่อไฟล์งานนำเสนอผลลัพธ์
string outPptxPath = dataDir + "presentation.pptx";
// สร้างงานนำเสนอใหม่
using (IPresentation presentation = new Presentation())
{
// อ่านเนื้อหาไฟล์ SVG
string svgContent = File.ReadAllText(svgFileName);
// สร้างอ็อบเจกต์ SvgImage
ISvgImage svgImage = new SvgImage(svgContent);
// รับขนาดสไลด์
SizeF slideSize = presentation.SlideSize.Size;
// แปลงภาพ SVG เป็นกลุ่มรูปทรงและปรับขนาดให้พอดีกับสไลด์
presentation.Slides[0].Shapes.AddGroupShape(svgImage, 0f, 0f, slideSize.Width, slideSize.Height);
// บันทึกงานนำเสนอในรูปแบบ PPTX
presentation.Save(outPptxPath, SaveFormat.Pptx);
}
เพิ่มภาพเป็น EMF ลงสไลด์
Aspose.Slides for .NET อนุญาตให้คุณสร้างภาพ EMF จากแผ่นงาน Excel และเพิ่มภาพเหล่านั้นเป็น EMF ลงในสไลด์โดยใช้ Aspose.Cells
โค้ดตัวอย่างนี้แสดงวิธีทำตามขั้นตอนที่อธิบายไว้:
using (Workbook book = new Workbook(dataDir + "chart.xlsx"))
{
Worksheet sheet = book.Worksheets[0];
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.HorizontalResolution = 200;
options.VerticalResolution = 200;
options.ImageFormat = System.Drawing.Imaging.ImageFormat.Emf;
//บันทึกเวิร์กบุ๊กไปยังสตรีม
SheetRender sr = new SheetRender(sheet, options);
using (Presentation pres = new Presentation())
{
pres.Slides.RemoveAt(0);
String EmfSheetName = "";
for (int j = 0; j < sr.PageCount; j++)
{
EmfSheetName = dataDir + "test" + sheet.Name + " Page" + (j + 1) + ".out.emf";
sr.ToImage(j, EmfSheetName);
var bytes = File.ReadAllBytes(EmfSheetName);
var emfImage = pres.Images.AddImage(bytes);
ISlide slide = pres.Slides.AddEmptySlide(pres.LayoutSlides.GetByType(SlideLayoutType.Blank));
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 0, 0, pres.SlideSize.Size.Width, pres.SlideSize.Size.Height, emfImage);
}
pres.Save(dataDir + "Saved.pptx", Aspose.Slides.Export.SaveFormat.Pptx);
}
}
แทนที่ภาพใน Image Collection
Aspose.Slides ให้คุณแทนที่ภาพที่จัดเก็บใน Image Collection ของงานนำเสนอ (รวมถึงภาพที่ใช้โดยรูปทรงสไลด์) ส่วนนี้แสดงวิธีการอัปเดตภาพในคอลเลกชันหลายวิธี API มีเมธอดที่ใช้งานง่ายเพื่อแทนที่ภาพโดยใช้ข้อมูลไบต์ดิบ, อินสแตนซ์ IImage หรือภาพอื่นที่มีอยู่แล้วในคอลเลกชัน
ทำตามขั้นตอนต่อไปนี้:
- โหลดไฟล์งานนำเสนอที่มีภาพโดยใช้คลาส Presentation
- โหลดภาพใหม่จากไฟล์เข้าสู่ byte array
- แทนที่ภาพเป้าหมายด้วยภาพใหม่โดยใช้ byte array
- แนวทางที่สอง โหลดภาพเข้าสู่อ็อบเจกต์ IImage แล้วแทนที่ภาพเป้าหมายด้วยอ็อบเจกต์นั้น
- แนวทางที่สาม แทนที่ภาพเป้าหมายด้วยภาพที่มีอยู่แล้วใน Image Collection ของงานนำเสนอ
- บันทึกงานนำเสนอที่แก้ไขเป็นไฟล์ PPTX
// สร้างอินสแตนซ์ของคลาส Presentation ที่เป็นตัวแทนไฟล์การนำเสนอ.
using Presentation presentation = new Presentation("sample.pptx");
// วิธีแรก.
byte[] imageData = File.ReadAllBytes("image0.jpeg");
IPPImage oldImage = presentation.Images[0];
oldImage.ReplaceImage(imageData);
// วิธีที่สอง.
using IImage newImage = Images.FromFile("image1.png");
oldImage = presentation.Images[1];
oldImage.ReplaceImage(newImage);
// วิธีที่สาม.
oldImage = presentation.Images[2];
oldImage.ReplaceImage(presentation.Images[3]);
// บันทึกการนำเสนอลงไฟล์.
presentation.Save("output.pptx", SaveFormat.Pptx);
Info
โดยใช้ตัวแปลงฟรีของ Aspose Text to GIF คุณสามารถทำให้ข้อความเคลื่อนไหวสร้าง GIF จากข้อความ ฯลฯ ได้อย่างง่ายดายคำถามที่พบบ่อย
ความละเอียดของภาพต้นฉบับจะคงเดิมหลังจากแทรกหรือไม่?
ใช่ พิกเซลต้นฉบับจะถูกเก็บไว้ แต่การแสดงผลสุดท้ายขึ้นอยู่กับว่าภาพ picture ถูกสเกลบนสไลด์อย่างไรและการบีบอัดใด ๆ ที่ใช้เมื่อบันทึก
วิธีที่ดีที่สุดในการแทนที่โลโกเดียวกันในหลายสิบสไลด์พร้อมกันคืออะไร?
วางโลโกบน master slide หรือ layout แล้วแทนที่ใน Image Collection ของงานนำเสนอ—การเปลี่ยนแปลงจะกระจายไปยังทุกองค์ประกอบที่ใช้ทรัพยากรนั้น
SVG ที่แทรกเข้ามาสามารถแปลงเป็นรูปทรงที่แก้ไขได้หรือไม่?
ได้ คุณสามารถแปลง SVG เป็นกลุ่มรูปทรงได้ หลังจากนั้นแต่ละส่วนจะสามารถแก้ไขได้ด้วยคุณสมบัติมาตรฐานของรูปทรง
จะตั้งค่าภาพเป็นพื้นหลังของหลายสไลด์พร้อมกันอย่างไร?
Assign the image as the background บน master slide หรือ layout ที่เกี่ยวข้อง—สไลด์ใด ๆ ที่ใช้ master/layout นั้นจะสืบทอดพื้นหลังโดยอัตโนมัติ
ทำอย่างไรเพื่อป้องกันไม่ให้ไฟล์งานนำเสนอขยายขนาดมากเกินไปจากภาพจำนวนมาก?
ใช้ภาพเดียวซ้ำแทนการทำสำเนา, เลือกความละเอียดที่เหมาะสม, บีบอัดเมื่อบันทึก, และเก็บกราฟิกที่ซ้ำกันไว้บน master slide เมื่อเป็นไปได้