3D hatások létrehozása prezentációkban Python használatával
Áttekintés
Aspose.Slides for Python via .NET képes létrehozni, szerkeszteni, megőrizni és megjeleníteni a PowerPoint-szerű 3D formázást alakzatok és szöveg esetén. Ez a cikk olyan 3D hatásokat tárgyal, mint a forgatás, extrúzió, élezés, megvilágítás, anyag, színátmenet vagy kép kitöltés, valamint a 3D szöveg.
3D formázási koncepciók
Használja a Shape.three_d_format tulajdonságot 3D formázás alkalmazásához egy alakzatra. A tulajdonság a ThreeDFormat objektumot adja vissza, amely a forma 3D jelenetét szabályozza.
Szöveghez használja a TextFrameFormat.three_d_format tulajdonságot. Ez a szövegdobozra alkalmaz 3D formázást a forma testének helyett.
A legfontosabb tulajdonságok:
| Tulajdonság | Mit szabályoz | Mikor használjuk |
|---|---|---|
| camera | Nézőpont, előre definiált kamera típus, forgatás, zoom és perspektíva. | Forgassa a tárgyat 3D térben vagy egyeztesse a PowerPoint 3D forgatás előre definiált beállításával. |
| light_rig | Fény előre definiált, irány és fény forgatás. | Módosítsa, hogyan jelennek meg a fények és árnyékok a 3D felületen. |
| material | Felületi anyag, például lapos, matt, műanyag vagy fém. | Tegye a geometriai alakzatot laposabbá, puhábbá, fényesebbé vagy fémesebbé. |
| extrusion_height | Mennyire nyúlik ki a forma hátra az előlapjától. | Alakítson egy lapos formát láthatóan vastag 3D objektummá. |
| extrusion_color | Az extrudált oldalak színe. | Tegye a mélységet láthatóvá vagy illessze az oldal színét a front kitöltéshez. |
| depth | További 3D mélység, amelyet a PowerPoint 3D formázás használ. | Finomhangolja a mélységet alakzatok vagy szöveg esetén, különösen a rézsút és anyag beállításokkal együtt. |
| bevel_top és bevel_bottom | Felső vagy alsó él emelkedett vagy lekerekített a front és hát felületeken. | Adj egy puhított vagy formázott élt a szúrós, lapos felület helyett. |
| contour_color és contour_width | Körvonal színe a 3D objektum körül. | Emelje ki az objektum határát a renderelt kimenetben. |
3D alakzat létrehozása
Egy alakzat általában négyféle beállítást igényel, hogy hihetően 3D-snek tűnjön:
- Kamera beállítások, mert az alapértelmezett előnézet elrejtheti az extrúziót.
- Fény beállítások, mert a megvilágítás teszi olvashatóvá a felületeket és oldalakat.
- Anyag beállítások, mert a felület befolyásolja, hogyan jelenik meg a fény.
- Extrúzió vagy mélység beállítások, mert egy lapos alakzatnak vastagságra van szüksége.
Az alábbi példa egy téglalapot hoz létre, szöveget ad hozzá az előlapjához, alkalmaz 3D formázást, PPTX‑ként menti a prezentációt, és a diát PNG képként rendereli.
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 200, 200)
shape.text_frame.text = "3D"
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 64
shape.fill_format.fill_type = slides.FillType.SOLID
shape.fill_format.solid_fill_color.color = drawing.Color.cornflower_blue
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(20, 30, 40)
shape.three_d_format.light_rig.light_type = slides.LightRigPresetType.FLAT
shape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
shape.three_d_format.material = slides.MaterialPresetType.FLAT
shape.three_d_format.extrusion_height = 100
shape.three_d_format.extrusion_color.color = drawing.Color.blue
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("shape_3d.png")
presentation.save("shape_3d.pptx", slides.export.SaveFormat.PPTX)
A renderelt diakép a téglalapot vastag 3D blokként mutatja:

Alakzat forgatása a kamerával
PowerPointban a 3D forgatás a „3‑D Rotation” panelről állítható be. Az X, Y és Z forgatási értékek a kamera API‑n keresztül beállított forgatásnak felelnek meg.

Az Aspose.Slides‑ben a kamera típusát és forgatását a ThreeDFormat.camera segítségével állíthatja be:
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(20, 30, 40)
Használja a kamerát, ha meg szeretné változtatni, hogy a néző hogyan látja az objektumot. Ez nem változtatja meg a 2D alakzatterület geometriáját a dián, csak a PowerPoint és az Aspose.Slides által a rendereléskor használt 3D nézőpontot.
Extrúzió és mélység hozzáadása
Az extrúzió egy alakzatot vastagnak mutat azáltal, hogy kinyújtja azt a front felület mögé. PowerPointban a mélység vezérlő határozza meg ezt a látható vastagságot, a szín vezérlő pedig az oldalfelületek színét.

Állítsa be a ThreeDFormat.extrusion_height értékét a vastagságra, és a ThreeDFormat.extrusion_color értékét az oldal színére:
shape.three_d_format.camera.set_rotation(20, 30, 40)
shape.three_d_format.extrusion_height = 100
shape.three_d_format.extrusion_color.color = drawing.Color.purple
Használja a ThreeDFormat.depth tulajdonságot, ha közvetlenül a PowerPoint mélységértékével szeretne dolgozni, vagy a mélységet rézsúttal, anyaggal és szöveghatásokkal kombinálni. Sok alakzatszituációban a ThreeDFormat.extrusion_height egyértelműbb beállítás, mert közvetlenül a látható extrúziót fejezi ki.
Gradiens vagy képi kitöltések használata 3D hatásokkal
A 3D formázás független a forma kitöltésétől. Alkalmazhat szilárd színt, színátmenetet, mintát vagy kép kitöltést az előlapra, miközben ugyanazokat a kamera-, fény-, anyag- és extrúzióbeállításokat használja.
Ez a példa színátmenet kitöltést alkalmaz a formára, és sötétebb extrúziószínt az oldalakon:
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 250, 250)
shape.text_frame.text = "3D Gradient"
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 64
shape.fill_format.fill_type = slides.FillType.GRADIENT
shape.fill_format.gradient_format.gradient_stops.add(0, drawing.Color.blue)
shape.fill_format.gradient_format.gradient_stops.add(100, drawing.Color.orange)
shape.three_d_format.camera.camera_type = slides.CameraPresetType.ORTHOGRAPHIC_FRONT
shape.three_d_format.camera.set_rotation(10, 20, 30)
shape.three_d_format.light_rig.light_type = slides.LightRigPresetType.FLAT
shape.three_d_format.light_rig.direction = slides.LightingDirection.TOP
shape.three_d_format.material = slides.MaterialPresetType.FLAT
shape.three_d_format.extrusion_height = 150
shape.three_d_format.extrusion_color.color = drawing.Color.dark_orange
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("gradient_3d.png")
A renderelt kimenet megőrzi a színátmenetet az előlapon, és az extrúziót külön rendereli:

Ha kép kitöltést szeretne használni, adja hozzá a képet a prezentációhoz, és rendelje hozzá a forma kitöltéséhez:
with open("image.jpg", "rb") as image_file:
image_data = image_file.read()
image = presentation.images.add_image(image_data)
shape.fill_format.fill_type = slides.FillType.PICTURE
shape.fill_format.picture_fill_format.picture.image = image
shape.fill_format.picture_fill_format.picture_fill_mode = slides.PictureFillMode.STRETCH
shape.three_d_format.camera.set_rotation(10, 20, 30)
shape.three_d_format.extrusion_height = 150
shape.three_d_format.extrusion_color.color = drawing.Color.dark_orange
A kép az előlapon jelenik meg, míg az extrúzió a 3D oldalfelületként renderelődik:

3D formázás alkalmazása szövegre
Az alakzat 3D formázása a forma testére vonatkozik. A szöveg 3D formázása a szövegdobozra. Ez hasznos WordArt‑szerű hatásokhoz, ahol a betűknek maguknak is szükségük van extrúzióra, anyagra, megvilágításra és kamera beállításokra.
Az alábbi példa szöveget hoz létre minta kitöltéssel, alkalmaz WordArt transzformációt, és beállítja a 3D paramétereket a TextFrameFormat számára:
import aspose.pydrawing as drawing
import aspose.slides as slides
image_scale = 2
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 200, 150, 250, 250)
shape.fill_format.fill_type = slides.FillType.NO_FILL
shape.line_format.fill_format.fill_type = slides.FillType.NO_FILL
shape.text_frame.text = "3D Text"
portion = shape.text_frame.paragraphs[0].portions[0]
portion.portion_format.fill_format.fill_type = slides.FillType.PATTERN
portion.portion_format.fill_format.pattern_format.fore_color.color = drawing.Color.dark_orange
portion.portion_format.fill_format.pattern_format.back_color.color = drawing.Color.white
portion.portion_format.fill_format.pattern_format.pattern_style = slides.PatternStyle.LARGE_GRID
shape.text_frame.paragraphs[0].paragraph_format.default_portion_format.font_height = 128
text_frame_format = shape.text_frame.text_frame_format
text_frame_format.transform = slides.TextShapeType.ARCH_UP
text_frame_format.three_d_format.extrusion_height = 3.5
text_frame_format.three_d_format.depth = 3
text_frame_format.three_d_format.material = slides.MaterialPresetType.PLASTIC
text_frame_format.three_d_format.light_rig.direction = slides.LightingDirection.TOP
text_frame_format.three_d_format.light_rig.light_type = slides.LightRigPresetType.BALANCED
text_frame_format.three_d_format.light_rig.set_rotation(0, 0, 40)
text_frame_format.three_d_format.camera.camera_type = slides.CameraPresetType.PERSPECTIVE_CONTRASTING_RIGHT_FACING
with slide.get_image(image_scale, image_scale) as thumbnail:
thumbnail.save("text_3d.png")
presentation.save("text_3d.pptx", slides.export.SaveFormat.PPTX)
A szöveg ívelt, extrudált 3D betűként jelenik meg:

Exportálás és renderelési viselkedés
Az Aspose.Slides megőrzi a 3D formázást, amikor PowerPoint formátumokba (például PPTX) ment. Fix elrendezésű formátumokba történő renderelés vagy exportálás során a 3D jelenet raszteres vagy 2D eredményként kerül be a kimenetbe. Ez akkor érvényes, amikor a diákat PNG-re rendereli, PDF-re exportál, HTML-re exportál, vagy videó konverzió kereteket generál.
Tartsa szem előtt a következőket:
- Az exportált képek és PDF‑ek nem interaktívak. Az objektumot a felhasználó az export után nem tudja forgatni.
- A végső megjelenés a kamera, fényrendszer, anyag, extrúzió, kitöltés és dia méretezés kombinációjától függ.
- Ha örökölt vagy sablon‑alapú formázási értékeket kell ellenőriznie, olvassa el a Alakzat hatékony tulajdonságait.
- Egyes kimeneti formátumok nem tárolhatják szerkeszthető PowerPoint 3D formázásukat. Ezekben a formátumokban a vizuális eredmény renderelt, nem szerkeszthető 3D beállításként.
GYIK
Létrehozhat-e az Aspose.Slides interaktív 3D prezentációkat?
Az Aspose.Slides PowerPoint 3D hatásokat hoz létre és renderel alakzatok és szöveg számára. Nem teszi az exportált képeket, PDF‑eket vagy HTML‑lapokat interaktív 3D jelenetekké, amelyeket a néző forgathat. PPTX‑ben a 3D formázás szerkeszthető marad a PowerPoint‑ban, ahol a formátum támogatja.
Mi a különbség egy 3D modell és egy 3D hatás között?
A 3D modell egy különálló, a prezentációba beszúrt 3D objektum. A 3D hatás egy szabványos PowerPoint alakzaton vagy szövegen alkalmazott formázás, például forgatás, extrúzió, rézsút, megvilágítás és anyag. Ez a cikk a 3D hatásokat tárgyalja.
Milyen beállítások szükségesek egy látható 3D alakzathoz?
Minimum egy kamera forgatás és vagy extrúzió vagy mélység beállítása szükséges. Gyakorlatilag érdemes fényrendszert és anyagot is beállítani, hogy a renderelt felületeknek legyenek tiszta kiemelések és árnyékok.
Alkalmazhatok‑e 3D hatásokat egyaránt alakzatokra és szövegre?
Igen. Használja a Shape.three_d_format‑t az alakzat testére és a TextFrameFormat.three_d_format‑t a szövegre.
Megjelennek‑e a 3D hatások exportáláskor képekre, PDF‑re, HTML‑re vagy videó keretekre?
Igen. Az Aspose.Slides a 3D hatásokat rendereli, amikor diaképeket, PDF‑kimenetet, HTML‑kimenetet vagy videó konverzióhoz használt kereteket állít elő. Az exportált kimenet a renderelt megjelenést tartalmazza, nem egy szerkeszthető 3D objektumot.
Ki tudom‑e olvasni a végleges 3D értékeket az öröklődés és a sablon beállítások alkalmazása után?
Igen. Használja a hatékony formázási API‑kat, amelyeket a Alakzat hatékony tulajdonságai leír, a végső kamera, fényrendszer, rézsút és kapcsolódó 3D értékek olvasásához.