Prezentációs diák képekké konvertálása .NET-ben
Bevezetés
Az Aspose.Slides for .NET képes a PowerPoint és OpenDocument bemutatók egyedi diákját PNG, JPEG, GIF, TIFF és egyéb képformátumokban megjeleníteni.
A dia képpé konvertálásához kövesse az alábbi lépéseket:
- Töltse be a bemutatót a Presentation osztállyal.
- Válassza ki a megjeleníteni kívánt diát.
- Szükség esetén állítsa be a renderelést a RenderingOptions vagy a TiffOptions osztállyal.
- Hívja meg a GetImage metódust. Ez egy IImage objektumot ad vissza.
- Hívja meg az IImage.Save metódust, és adja meg a kimeneti formátumot egy ImageFormat értékkel.
Diát PNG képpé konvertálása
A legegyszerűbb konverzió az alapértelmezett renderelési beállításokat használja. A kapott IImage objektum memóriában feldolgozható vagy fájlba menthető.
Az alábbi C# példa az első diát rendereli, és PNG képként menti el:
using Aspose.Slides;
using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];
using var image = slide.GetImage();
image.Save("Slide_0.png", ImageFormat.Png);
Diák konvertálása egyéni méretű képekké
Használja a GetImage túlterhelést, amely egy Size értéket fogad, hogy a diát pontos képpont mérettel renderelje.
Az alábbi példa egy 1820 × 1040 JPEG képet hoz létre:
using System.Drawing;
using Aspose.Slides;
var imageSize = new Size(1820, 1040);
using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];
using var image = slide.GetImage(imageSize);
image.Save("Slide_0.jpg", ImageFormat.Jpeg);
Diák konvertálása jegyzetekkel és megjegyzésekkel rendelkező képekké
Alapértelmezés szerint a diaképek nem tartalmaznak jegyzeteket vagy megjegyzéseket. Rendeljen egy NotesCommentsLayoutingOptions objektumot a RenderingOptions.SlidesLayoutOptions tulajdonsághoz, hogy szabályozza, hol jelenjenek meg a jegyzetek és megjegyzések.
Az alábbi példa a levágott jegyzeteket a dia alá, a megjegyzéseket pedig a jobb oldalára helyezi:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
var scaleX = 2f;
var scaleY = scaleX;
var layoutOptions = new NotesCommentsLayoutingOptions
{
NotesPosition = NotesPositions.BottomTruncated,
CommentsPosition = CommentsPositions.Right,
CommentsAreaWidth = 500,
CommentsAreaColor = Color.AntiqueWhite
};
var renderingOptions = new RenderingOptions { SlidesLayoutOptions = layoutOptions };
using var presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
var slide = presentation.Slides[0];
using var image = slide.GetImage(renderingOptions, scaleX, scaleY);
image.Save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
Figyelmeztetés
A dia‑kép konvertálásakor ne állítsa be a NotesPosition tulajdonságot a BottomFull értékre. A jegyzetek több szöveget is tartalmazhatnak, mint amit a fix képméret befogad. Helyette a BottomTruncated értéket használja.Diák konvertálása TIFF beállítások használatával
A TiffOptions osztály lehetővé teszi a renderelt TIFF kép méretének, felbontásának és egyéb tulajdonságainak vezérlését.
Az alábbi példa az első diát 2160 × 2880 TIFF képként, 300 DPI felbontással rendereli:
using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;
var tiffOptions = new TiffOptions
{
ImageSize = new Size(2160, 2880),
DpiX = 300,
DpiY = 300
};
using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];
using var image = slide.GetImage(tiffOptions);
image.Save("output.tiff", ImageFormat.Tiff);
Az összes dia konvertálása képekké
Iteráljon a diagyűjteményen, hogy a teljes bemutatót képsorozattá konvertálja. A rejtett diák is belekerülnek, hacsak kifejezetten nem hagyja ki őket.
Az alábbi példa minden diát JPEG képként renderel, vízszintes és függőleges méretezési faktorral 2:
using Aspose.Slides;
var scaleX = 2f;
var scaleY = scaleX;
using var presentation = new Presentation("Presentation.pptx");
var slideCount = presentation.Slides.Count;
for (var index = 0; index < slideCount; index++)
{
var slide = presentation.Slides[index];
using var image = slide.GetImage(scaleX, scaleY);
image.Save($"Slide_{index}.jpg", ImageFormat.Jpeg);
}
Enhanced Metafile (EMF) kimenet létrehozása
Az Enhanced Metafile (EMF) akkor hasznos, amikor vektor alapú grafikákat kell cserélni a Microsoft Office-szal vagy más Windows alkalmazásokkal, amelyek támogatják a Windows metafájlokat. A pixel alapú képpel ellentétben egy EMF meg tudja őrizni a vektoros rajzolási műveleteket, amelyek méretezésekor nem veszítenek annyira a élességben. Az EMF azonban elsősorban kompatibilitási formátum Windows metafájl‑támogatással rendelkező alkalmazások számára, nem pedig általános csereformátum. Továbbá a komplex diatartalmak, mint a bitmap képek és bizonyos effektusok, rasterizált elemekként tárolhatók a vektor metafájl konténerben.
Dia exportálása EMF-be
Az ISlide.WriteAsEmf metódus egy ISlide objektumot EMF formátumban ír egy célfolyamra. Az alábbi példa betölt egy bemutatót, kiválasztja az első diát, és egy EMF fájlfolyamba írja:
using System.IO;
using Aspose.Slides;
using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];
using var emfStream = File.Create("Slide_0.emf");
slide.WriteAsEmf(emfStream);
A hívó felelős a ISlide.WriteAsEmf metódusnak átadott folyamért, és le kell zárnia vagy el kell engednie azt. Az Aspose.Slides a folyam aktuális pozíciójában ír, és nyitva hagyja a folyamat.
SVG kép konvertálása EMF-be, és hozzáadása a bemutatóhoz
Használja az ISvgImage.WriteAsEmf metódust az SVG tartalom EMF-be konvertálásához. A kapott bájtok hozzáadhatók a bemutatóhoz a IImageCollection.AddImage használatával, és egy diára helyezhetők a IShapeCollection.AddPictureFrame segítségével.
Az alábbi példa egy SvgImage objektumot hoz létre SVG jelölésből, memóriában EMF-be konvertálja, az első diára beilleszti a metafájlt, majd elmenti a bemutatót:
using System.IO;
using Aspose.Slides;
using Aspose.Slides.Export;
var svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"100\"><rect width=\"200\" height=\"100\" fill=\"#4472C4\"/></svg>";
var svgImage = new SvgImage(svgContent);
using var presentation = new Presentation();
var slide = presentation.Slides[0];
using var emfStream = new MemoryStream();
svgImage.WriteAsEmf(emfStream);
emfStream.Position = 0;
var image = presentation.Images.AddImage(emfStream);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 20, 20, 200, 100, image);
presentation.Save("Presentation_with_emf.pptx", SaveFormat.Pptx);
ISvgImage.WriteAsEmf nem birtokolja a célfolyamot. Írás után a folyam pozíciója a generált adatok végén van. A Position‑t állítsa vissza a kezdetre, mielőtt ugyanazt a kereshető folyamat átadná egy olvasónak, ahogy fent mutattuk. Hagyja a folyamatot nyitva, amíg a fogyasztó be nem fejezi a olvasást, majd utána zárja be. Alternatívaként hívja meg a ToArray‑t, és adja át a kapott bájt tömböt a IImageCollection.AddImage metódusnak; a ToArray a teljes puffert adja vissza a folyamat aktuális pozíciójától függetlenül.
Az EMF generálás elérhető azokban az operációs rendszerekben, amelyeket a kiválasztott Aspose.Slides for .NET build támogat, de a renderelés különbözhet platformonként, ha a betűtípusok vagy a natív grafikai függőségek nem állnak rendelkezésre. Telepítse a forrás tartalom által használt betűtípusokat, vagy állítson be megfelelő helyettesítéseket, kövesse a platform követelményeket a Aspose.Slides csomaghoz, és ellenőrizze az eredményt a cél EMF‑fogyasztó alkalmazásban. A Linux és macOS alkalmazások gyakran korlátozott vagy eltérő támogatással rendelkeznek a Windows metafájlok megjelenítésére és szerkesztésére.
Színes Emoji renderelés
Megjegyzés
A színes emoji‑k helyes rendereléséhez a bemutatóban használt emoji betűkészleteknek telepítve és elérhetőeknek kell lenniük azon a rendszeren, amely a konvertálást végzi. Például, ha a bemutató Segoe UI Emoji betűtípust használ, és ez hiányzik, az emojik monokrómként jelenhetnek meg a kimeneti képeken.GYIK
Támogatja az Aspose.Slides a diák animációval történő renderelését?
Nem. A GetImage metódus a dia statikus képét rendereli, és nem exportál animációkat.
Exportálhatók a rejtett diák képek formájában?
Igen. A rejtett diák hasonlóan renderelhetők, mint a normál diák. Tartalmazza őket a feldolgozási ciklusban, ahogy az előző példában is látható.
Megmaradnak-e az árnyékok és egyéb effektusok a diaképeken?
Igen. Az Aspose.Slides az árnyékokat, átlátszóságot és egyéb támogatott grafikai effektusokat a diaképeken megjeleníti.