Prezentációs diák képekké konvertálása Pythonban
Bevezetés
Az Aspose.Slides for Python via .NET képes egyedi diák renderelésére PowerPoint és OpenDocument bemutatókból PNG, JPEG, GIF, TIFF és más képformátumokban.
Egy dia képbe 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 renderelni kívánt diát.
- Szükség esetén konfigurálja a renderelést a RenderingOptions vagy a TiffOptions osztállyal.
- Hívja meg a Slide.get_image 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.
Dia konvertálása PNG képpé
A legegyszerűbb konvertálás az alapértelmezett renderelési beállításokkal történik. A kapott IImage objektum memóriában feldolgozható vagy fájlba menthető.
Az alábbi Python példa rendereli az első diát, majd PNG képként menti el:
import aspose.slides as slides
with slides.Presentation("Presentation.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image() as image:
image.save("Slide_0.png", slides.ImageFormat.PNG)
Diák konvertálása képekké egyedi méretekkel
Használja a Slide.get_image túlterhelt változatát, amely egy Size értéket fogad, és pontos pixelmérettel rendereli a diát.
Az alábbi példa 1820 × 1040 méretű JPEG képet hoz létre:
import aspose.pydrawing as draw
import aspose.slides as slides
image_size = draw.Size(1820, 1040)
with slides.Presentation("Presentation.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image(image_size) as image:
image.save("Slide_0.jpg", slides.ImageFormat.JPEG)
Diák konvertálása képekké jegyzetekkel és megjegyzésekkel
Alapértelmezés szerint a dia képek nem tartalmaznak jegyzeteket vagy megjegyzéseket. Egy NotesCommentsLayoutingOptions objektumot rendelje a RenderingOptions.slides_layout_options tulajdonsághoz, hogy szabályozza, hol jelenjenek meg a jegyzetek és megjegyzések.
Az alábbi példa a vágott jegyzeteket a dia alá, a megjegyzéseket pedig a jobb oldalra helyezi:
import aspose.pydrawing as draw
import aspose.slides as slides
scale_x = 2
scale_y = scale_x
layout_options = slides.export.NotesCommentsLayoutingOptions()
layout_options.notes_position = slides.export.NotesPositions.BOTTOM_TRUNCATED
layout_options.comments_position = slides.export.CommentsPositions.RIGHT
layout_options.comments_area_width = 500
layout_options.comments_area_color = draw.Color.antique_white
rendering_options = slides.export.RenderingOptions()
rendering_options.slides_layout_options = layout_options
with slides.Presentation("Presentation_with_notes_and_comments.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image(rendering_options, scale_x, scale_y) as image:
image.save("Image_with_notes_and_comments_0.gif", slides.ImageFormat.GIF)
Figyelmeztetés
Dia‑kép konvertálásakor ne állítsa be a NotesCommentsLayoutingOptions.notes_position tulajdonságot a NotesPositions.BOTTOM_FULL értékre. A jegyzetek több szöveget tartalmazhatnak, mint amennyit a rögzített képméret befogad. Használja helyette a NotesPositions.BOTTOM_TRUNCATED értéket.Diák konvertálása képekké TIFF beállításokkal
A TiffOptions osztály lehetővé teszi a renderelt TIFF kép méretének, felbontásának és egyéb tulajdonságainak szabályozását.
Az alábbi példa az első diát 2160 × 2880 méretű, 300 DPI-s TIFF képként rendereli:
import aspose.pydrawing as draw
import aspose.slides as slides
tiff_options = slides.export.TiffOptions()
tiff_options.image_size = draw.Size(2160, 2880)
tiff_options.dpi_x = 300
tiff_options.dpi_y = 300
with slides.Presentation("sample.pptx") as presentation:
slide = presentation.slides[0]
with slide.get_image(tiff_options) as image:
image.save("output.tiff", slides.ImageFormat.TIFF)
Az összes dia konvertálása képekké
Iteráljon a dia‑gyűjteményen, hogy a teljes bemutatót képsorozattá alakítsa. A rejtett diák is belekerülnek, hacsak nem hagyja ki őket kifejezetten.
Az alábbi példa minden diát JPEG képként renderel, vízszintes és függőleges nagyítási tényezővel 2:
import aspose.slides as slides
scale_x = 2
scale_y = scale_x
with slides.Presentation("Presentation.pptx") as presentation:
for index, slide in enumerate(presentation.slides):
with slide.get_image(scale_x, scale_y) as image:
image.save("Slide_{}.jpg".format(index), slides.ImageFormat.JPEG)
Enhanced Metafile (EMF) kimenet létrehozása
Az Enhanced Metafile (EMF) akkor hasznos, ha vektoros grafikákat kell cserélni a Microsoft Office vagy egyéb Windows‑alkalmazásokkal, amelyek támogatják a Windows metafiléket. A pixel‑alapú képekkel ellentétben az EMF megőrizheti a vektoros rajzolási műveleteket, amelyek skálázhatók anélkül, hogy élességük csökkenne. Az EMF azonban elsősorban kompatibilitási formátum Windows‑metafilét támogató alkalmazások számára, nem pedig általános csereformátum. Emellett a bonyolult dia‑tartalom, például bitmap képek vagy egyes effektusok rasterizált elemekként tárolódhatnak a vektor metafilé konténerben.
Dia exportálása EMF‑ként
A Slide.write_as_emf metódus egy Slide objektumot ír egy cél‑streambe EMF formátumban. Az alábbi példa betölt egy bemutatót, kiválasztja az első diát, és egy EMF fájl‑streambe írja:
import aspose.slides as slides
with slides.Presentation("Presentation.pptx") as presentation:
slide = presentation.slides[0]
with open("Slide_0.emf", "wb") as emf_stream:
slide.write_as_emf(emf_stream)
A hívó felelős a Slide.write_as_emf számára átadott stream tulajdonjogáért, és be kell zárnia azt. Az Aspose.Slides a stream aktuális pozíciójában ír, és nyitva hagyja a streamet.
SVG kép konvertálása EMF‑be és hozzáadása a bemutatóhoz
Használja a SvgImage.write_as_emf metódust az SVG tartalom EMF‑re konvertálásához. A kapott bájtok hozzáadhatók a bemutatóhoz a ImageCollection.add_image segítségével, és elhelyezhetők egy dián a ShapeCollection.add_picture_frame metódussal.
Az alábbi példa SVG markupból hoz létre egy SvgImage objektumot, memóriában EMF‑re konvertálja, az első diára beszúrja, majd menti a bemutatót:
import io
import aspose.slides as slides
svg_content = '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="100"><rect width="200" height="100" fill="#4472C4"/></svg>'
svg_image = slides.SvgImage(svg_content)
with slides.Presentation() as presentation:
slide = presentation.slides[0]
with io.BytesIO() as emf_stream:
svg_image.write_as_emf(emf_stream)
emf_data = emf_stream.getvalue()
image = presentation.images.add_image(emf_data)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 20, 20, 200, 100, image)
presentation.save("Presentation_with_emf.pptx", slides.export.SaveFormat.PPTX)
A SvgImage.write_as_emf nem veszi át a cél‑stream tulajdonjogát. Írás után a stream pozíciója a generált adatok végén áll. Hívja a getvalue‑t a teljes buffer megszerzéséhez, függetlenül a jelenlegi stream‑pozíciótól, ahogyan a fenti példában is látható. Tartsa nyitva a streamet, amíg az adatot be nem olvasta, majd zárja be azt.
Az EMF generálás elérhető az Aspose.Slides for Python via .NET által támogatott operációs rendszereken, de a renderelés platformok között eltérhet, ha a betűtípusok vagy a natív grafikai függőségek nem érhetők el. Telepítse a forrás tartalom által használt betűtípusokat, vagy konfiguráljon megfelelő helyettesítéseket, kövesse az platformkövetelményeket az Aspose.Slides‑hez, és ellenőrizze az eredményt a cél EMF‑fogyasztó alkalmazásban. Linux és macOS környezetek gyakran korlátozott vagy nem egységes támogatást nyújtanak a Windows metafilék megjelenítéséhez és szerkesztéséhez.
Színes Emoji renderelés
Megjegyzés
A színes emoji‑k helyes rendereléséhez a prezentációban használt emoji betűtípusoknak telepítve kell lenniük és elérhetőknek kell lenniük azon a rendszeren, amely a konvertálást végzi. Például ha a prezentáció Segoe UI Emoji betűtípust használ, és ez hiányzik, az emoji‑k monokrómként jelenhetnek meg a kimeneti képeken.GYIK
Támogatja-e az Aspose.Slides a diák animációkkal együtt történő renderelését?
Nem. A Slide.get_image metódus egy statikus képet renderel a diáról, és nem exportál animációkat.
Exportálhatók-e a rejtett diák képek formájában?
Igen. A rejtett diák ugyanúgy renderelhetők, mint a normál diák. Vegye őket fel a feldolgozó ciklusba, ahogyan a fenti példában is látható.
Megmaradnak-e az árnyékok és egyéb effektusok a dia‑képeken?
Igen. Az Aspose.Slides az árnyékokat, áttetszőséget és egyéb támogatott grafikai effektusokat is megjeleníti a dia‑képeken.