Képek kezelésének optimalizálása a bemutatókban .NET-ben
Bevezetés
A képek élőbbé és érdekesebbé teszik a bemutatókat. A Microsoft PowerPointban képeket szúrhat be fájlból, az internetről vagy más helyekről a diákra. Hasonlóképpen, az Aspose.Slides lehetővé teszi, hogy különböző módokon képeket adjon a diákhoz a bemutatójában.
Tipp
Az Aspose ingyenes konvertereket biztosít — JPEG to PowerPoint és PNG to PowerPoint — amelyek lehetővé teszik, hogy gyorsan bemutatókat készítsen képekből.Információ
Ha képet szeretne keretobjektumként hozzáadni — különösen ha szabványos formázási beállításokat szeretne használni a méretének módosításához, effektusok hozzáadásához stb. — lásd a Képkeret.Megjegyzés
Képek és PowerPoint‑bemutatók bemeneti/kimeneti műveleteit manipulálva képet konvertálhat az egyik formátumból a másikba. Lásd ezeket az oldalakat: konvertálja a kép JPG-re; konvertálja a JPG képet; konvertálja a JPG PNG-re, konvertálja a PNG JPG-re; konvertálja a PNG SVG‑re, konvertálja a SVG PNG‑re.Az Aspose.Slides támogatja a képek kezelését a következő népszerű formátumokban: JPEG, PNG, BMP, GIF és egyebek.
Képek helyi tárolásból a diákhoz
A számítógépén lévő egy vagy több képet hozzáadhat egy diához a bemutatóban. Az alábbi C# példakód megmutatja, hogyan adjon képet egy diához:
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);
}
Képek hozzáadása a webről a diákhoz
Ha a diához hozzáadni kívánt kép nem érhető el a számítógépén, közvetlenül a webről is hozzáadhatja azt.
Az alábbi C# példakód megmutatja, hogyan adjon képet a webről egy diához:
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);
}
Képek hozzáadása a diamesterekhez
A diamester a legfelső dia, amely tárolja és szabályozza az alatta lévő diák információit (téma, elrendezés stb.). Így, ha egy képet a diamesterhez ad hozzá, az a kép minden alatta lévő dián megjelenik.
Az alábbi C# példakód megmutatja, hogyan adjon képet egy diamesterhez:
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);
}
Képek hozzáadása diák háttérként
Előfordulhat, hogy egy képet háttérként szeretne használni egy adott dián vagy több dián. Ebben az esetben lásd a Képek beállítása háttérként a diákhoz.
SVG hozzáadása a bemutatókhoz
Bármilyen képet hozzáadhat vagy beilleszthet egy bemutatóba a AddPictureFrame metódus használatával, amely a IShapeCollection felülethez tartozik.
SVG képen alapuló képobjektum létrehozásához a következő módon járhat el:
- Hozzon létre SvgImage objektumot a ImageShapeCollection-be való beszúráshoz
- Hozzon létre PPImage objektumot az ISvgImage‑ből
- Hozzon létre PictureFrame objektumot az IPPImage interfész használatával
Az alábbi példakód megmutatja, hogyan valósítsa meg a fenti lépéseket egy SVG kép hozzáadásához egy bemutatóba:
// A dokumentumok könyvtárának elérési útja
string dataDir = @"D:\Documents\";
// Forrás SVG fájl neve
string svgFileName = dataDir + "sample.svg";
// Kimeneti bemutató fájl neve
string outPptxPath = dataDir + "presentation.pptx";
// Új bemutató létrehozása
using (var p = new Presentation())
{
// SVG fájl tartalmának beolvasása
string svgContent = File.ReadAllText(svgFileName);
// SvgImage objektum létrehozása
ISvgImage svgImage = new SvgImage(svgContent);
// PPImage objektum létrehozása
IPPImage ppImage = p.Images.AddImage(svgImage);
// Új PictureFrame létrehozása
p.Slides[0].Shapes.AddPictureFrame(ShapeType.Rectangle, 200, 100, ppImage.Width, ppImage.Height, ppImage);
// Bemutató mentése PPTX formátumban
p.Save(outPptxPath, SaveFormat.Pptx);
}
SVG konvertálása alakzatkészletre
Az Aspose.Slides SVG‑konverziója egy alakzatkészletre hasonló a PowerPoint SVG‑kezelő funkciójához:

A funkcionalitást a AddGroupShape metódus egyik túlterhelése biztosítja a IShapeCollection felületen, amely az első argumentumként egy ISvgImage objektumot vár.
Az alábbi példakód megmutatja, hogyan használja a leírt módszert egy SVG fájl alakzatkészletté konvertálásához:
// A dokumentumok könyvtárának elérési útja
string dataDir = @"D:\Documents\";
// Forrás SVG fájl neve
string svgFileName = dataDir + "sample.svg";
// Kimeneti bemutató fájl neve
string outPptxPath = dataDir + "presentation.pptx";
// Új bemutató létrehozása
using (IPresentation presentation = new Presentation())
{
// SVG fájl tartalmának beolvasása
string svgContent = File.ReadAllText(svgFileName);
// SvgImage objektum létrehozása
ISvgImage svgImage = new SvgImage(svgContent);
// Dia méretének lekérése
SizeF slideSize = presentation.SlideSize.Size;
// SVG képet alakzatcsoporttá konvertálás, a dia méretére méretezve
presentation.Slides[0].Shapes.AddGroupShape(svgImage, 0f, 0f, slideSize.Width, slideSize.Height);
// Bemutató mentése PPTX formátumban
presentation.Save(outPptxPath, SaveFormat.Pptx);
}
Képek hozzáadása EMF‑ként a diákhoz
Az Aspose.Slides for .NET lehetővé teszi, hogy az Excel‑lapokból EMF képeket generáljon, és ezeket az EMF képeket a diákba adja hozzá az Aspose.Cells‑szel.
Az alábbi példakód megmutatja, hogyan hajtsa végre a leírt feladatot:
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;
//A munkafüzet mentése adatfolamba
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);
}
}
Képek cseréje a Képgyűjteményben
Az Aspose.Slides lehetővé teszi, hogy a bemutató képgyűjteményében (beleértve a dia‑alakzatok által használtakat) tárolt képeket cserélje. Ez a szakasz több megközelítést mutat be a gyűjtemény képeinek frissítésére. Az API egyszerű módszereket kínál egy kép nyers bájtadatokkal, egy IImage példánnyal vagy egy már létező képpel történő cseréjéhez.
Kövesse az alábbi lépéseket:
- Töltse be a képeket tartalmazó bemutatófájlt a Presentation osztállyal.
- Töltsön be egy új képet egy fájlból bájt‑tömbbe.
- Cserélje le a célképet az új képre a bájt‑tömb használatával.
- A második megközelítésben töltse be a képet egy IImage objektumba, és cserélje le a célképet ezzel az objektummal.
- A harmadik megközelítésben cserélje le a célképet egy már a bemutató képgyűjteményében létező képre.
- Írja a módosított bemutatót PPTX‑fájlként.
// A Presentation osztály példányosítása, amely egy bemutató fájlt képvisel.
using Presentation presentation = new Presentation("sample.pptx");
// Az első mód.
byte[] imageData = File.ReadAllBytes("image0.jpeg");
IPPImage oldImage = presentation.Images[0];
oldImage.ReplaceImage(imageData);
// A második mód.
using IImage newImage = Images.FromFile("image1.png");
oldImage = presentation.Images[1];
oldImage.ReplaceImage(newImage);
// A harmadik mód.
oldImage = presentation.Images[2];
oldImage.ReplaceImage(presentation.Images[3]);
// A bemutató mentése fájlba.
presentation.Save("output.pptx", SaveFormat.Pptx);
Információ
Az Aspose INGYENES Text to GIF konverterrel egyszerűen animálhat szövegeket, GIF‑eket hozhat létre szövegekből stb.GYIK
Megmarad az eredeti kép felbontása a beszúrás után?
Igen. A forrás‑pixelek megmaradnak, de a végső megjelenés attól függ, hogy a picture hogyan van méretezve a dián és milyen tömörítés kerül alkalmazásra mentéskor.
Mi a legjobb mód a logó cseréjére egyszerre több tucat dián?
Helyezze a logót a mester‑diára vagy egy elrendezésre, és cserélje le a bemutató képgyűjteményében – a módosítások minden, azt az erőforrást használó elemre kiterjednek.
Átalakítható-e a beillesztett SVG szerkeszthető alakzatokká?
Igen. Az SVG konvertálható egy alakzatcsoporttá, amelynek egyes részei szerkeszthetők a szabványos alakzattulajdonságokkal.
Hogyan állíthatom be egy kép háttérként több diára egyszerre?
A kép beállítása háttérként a mester‑dián vagy a megfelelő elrendezésen – a mester/eljárás‑elrendezést használó diák örökölni fogják a hátteret.
Hogyan akadályozhatom meg, hogy a bemutató a sok kép miatt „felrobbanjon” méretben?
Használjon egyetlen képernyőforrást a másolások helyett, válasszon megfelelő felbontást, alkalmazzon tömörítést mentéskor, és a gyakran ismétlődő grafikákat a mester‑diákon helyezze el, ahol indokolt.