.NET használatával 3D hatások létrehozása prezentációkban
Áttekintés
Az Aspose.Slides for .NET képes létrehozni, szerkeszteni, megőrizni és megjeleníteni a PowerPoint‑szerű 3D formázást alakzatokhoz és szöveghez. Ez a cikk a 3D effektusokat, például a forgatást, extrudálást, peremeket, megvilágítást, anyagot, színátmenetes vagy képes kitöltést, valamint a 3D szöveget tárgyalja.
3D formázási koncepciók
Használja a IShape.ThreeDFormat tulajdonságot a 3D formázás alkalmazásához egy alakzatra. A tulajdonság elérhetővé teszi az IThreeDFormat objektumot, amely a 3D jelenetet szabályozza az adott alakzatra.
Szöveghez használja a ITextFrameFormat.ThreeDFormat tulajdonságot. Ez a 3D formázást a szövegkeretre alkalmazza az alakzattörzs helyett.
A legfontosabb tulajdonságok:
| Tulajdonság | Mit szabályoz | Mikor használja |
|---|---|---|
| Camera | Nézetpont, előre beállított kamera típus, forgatás, nagyítás és perspektíva. | Forgassa az objektumot 3D térben, vagy egyeztesse a PowerPoint 3D forgatás előbeállított értékével. |
| LightRig | Fény előbeállítás, irány és fényforgás. | Módosítsa, hogyan jelennek meg a kiemelések és árnyékok a 3D felületen. |
| Material | Felületi anyag, például sík, matt, műanyag vagy fém. | Tegye ugyanazt a geometriát laposabbá, puhábbá, fényesebbé vagy fémesebbé. |
| ExtrusionHeight | Milyen messzire nyúlik vissza az alakzat az első felületétől. | Alakítson egy sík alakzatot láthatóan vastag 3D objektummá. |
| ExtrusionColor | Az extrudált oldalak színe. | Tegye a mélységet láthatóvá vagy igazítsa az oldalsó színt az első kitöltéshez. |
| Depth | További 3D mélység, amelyet a PowerPoint 3D formázása használ. | Finomhangolja a mélységet alakzatok vagy szöveg számára, különösen a bevel és anyag beállításokkal együtt. |
| BevelTop és BevelBottom | Emelt vagy lekerekített élek az első és hátsó felületeken. | Adj hozzá lágy vagy formázott élt a hegyes sík felület helyett. |
| ContourColor és ContourWidth | Körvonal 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, mielőtt hiteles 3D‑ként jelenik meg:
- Kamera beállítások, mivel az alapértelmezett előnézet elrejtheti az extrudálást.
- Világítás beállítások, mivel a fény megkülönbözteti a felületeket és oldalakat.
- Anyag beállítások, mivel a felület befolyásolja a fény megjelenítését.
- Extrudálás vagy mélység beállítások, mivel egy sík alakzatnak vastagságra van szüksége.
A következő példa egy téglalapot hoz létre, szöveget ad az előoldalához, alkalmaz 3D formázást, PPTX‑ként menti a prezentációt, majd a diát PNG képre rendereli.
const float imageScale = 2;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 200, 200);
shape.TextFrame.Text = "3D";
shape.TextFrame.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 64;
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.CornflowerBlue;
shape.ThreeDFormat.Camera.CameraType = CameraPresetType.OrthographicFront;
shape.ThreeDFormat.Camera.SetRotation(20, 30, 40);
shape.ThreeDFormat.LightRig.LightType = LightRigPresetType.Flat;
shape.ThreeDFormat.LightRig.Direction = LightingDirection.Top;
shape.ThreeDFormat.Material = MaterialPresetType.Flat;
shape.ThreeDFormat.ExtrusionHeight = 100;
shape.ThreeDFormat.ExtrusionColor.Color = Color.Blue;
using var thumbnail = slide.GetImage(imageScale, imageScale);
thumbnail.Save("shape_3d.png");
presentation.Save("shape_3d.pptx", SaveFormat.Pptx);
A renderelt dia kép mutatja a téglalapot vastag 3D blokként:

Alakzat forgatása a kamerával
PowerPoint‑ban a 3D forgatást a 3‑D Rotation ablaktáblán állítják be. Az X, Y és Z forgatási értékek felelnek meg annak a forgatásnak, amelyet a kamera API‑val ad meg.

Az Aspose.Slides‑nél a kamera típusát és forgatását a IThreeDFormat.Camera segítségével állíthatja be:
shape.ThreeDFormat.Camera.CameraType = CameraPresetType.OrthographicFront;
shape.ThreeDFormat.Camera.SetRotation(20, 30, 40);
Használja a kamerát, ha meg szeretné változtatni, hogyan látja a néző az objektumot. Nem változtatja meg a 2D alakzatgeometriát a dián. A PowerPoint és az Aspose.Slides által a renderelés során használt 3D nézőpontot módosítja.
Extrudálás és mélység hozzáadása
Az extrudálás egy alakzatot vastagnak mutat azzal, hogy kinyújtja azt az első felület mögé. PowerPoint‑ban 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 IThreeDFormat.ExtrusionHeight értékét a vastagságra és a IThreeDFormat.ExtrusionColor értékét az oldal színére:
shape.ThreeDFormat.Camera.SetRotation(20, 30, 40);
shape.ThreeDFormat.ExtrusionHeight = 100;
shape.ThreeDFormat.ExtrusionColor.Color = Color.Purple;
Használja az IThreeDFormat.Depth tulajdonságot, ha közvetlenül a PowerPoint mélységértékével akar dolgozni, vagy a mélységet kombinálná a bevel, anyag és szövegeffektusokkal. Sok alakzatszituációban az ExtrusionHeight egyértelműbb beállítás, mert közvetlenül a látható extrudálást fejezi ki.
Színátmenetes vagy képes kitöltés használata 3D effektusokkal
A 3D formázás független az alakzat kitöltésétől. Alkalmazhat egy egyszínű, színátmenetes, mintás vagy képes kitöltést az előoldalon, miközben ugyanazt a kamera, világítás, anyag és extrudálás beállításokat használja.
Ez a példa színátmenetes kitöltést ad az alakzatra és sötétebb extrudálási színt az oldalakra:
const float imageScale = 2;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 250, 250);
shape.TextFrame.Text = "3D Gradient";
shape.TextFrame.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 64;
shape.FillFormat.FillType = FillType.Gradient;
shape.FillFormat.GradientFormat.GradientStops.Add(0, Color.Blue);
shape.FillFormat.GradientFormat.GradientStops.Add(100, Color.Orange);
shape.ThreeDFormat.Camera.CameraType = CameraPresetType.OrthographicFront;
shape.ThreeDFormat.Camera.SetRotation(10, 20, 30);
shape.ThreeDFormat.LightRig.LightType = LightRigPresetType.Flat;
shape.ThreeDFormat.LightRig.Direction = LightingDirection.Top;
shape.ThreeDFormat.Material = MaterialPresetType.Flat;
shape.ThreeDFormat.ExtrusionHeight = 150;
shape.ThreeDFormat.ExtrusionColor.Color = Color.DarkOrange;
using var thumbnail = slide.GetImage(imageScale, imageScale);
thumbnail.Save("gradient_3d.png");

Képes kitöltés használatához adja hozzá a képet a prezentációhoz, majd rendelje hozzá az alakzat kitöltéséhez:
var imageData = File.ReadAllBytes("image.jpg");
var image = presentation.Images.AddImage(imageData);
shape.FillFormat.FillType = FillType.Picture;
shape.FillFormat.PictureFillFormat.Picture.Image = image;
shape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
shape.ThreeDFormat.Camera.SetRotation(10, 20, 30);
shape.ThreeDFormat.ExtrusionHeight = 150;
shape.ThreeDFormat.ExtrusionColor.Color = Color.DarkOrange;

3D formázás alkalmazása szövegre
Az alakzat 3D formázása a forma testére hat. A szöveg 3D formázása a szövegkeretre. Ez hasznos WordArt‑szerű effektusoknál, ahol a betűknek maguknak is szükségük van extrudálásra, anyagra, megvilágításra és kamera beállításokra.
A következő példa mintás kitöltéssel hoz létre szöveget, WordArt átalakítást alkalmaz, és konfigurálja a 3D beállításokat az ITextFrameFormat‑nél:
const float imageScale = 2;
using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 250, 250);
shape.FillFormat.FillType = FillType.NoFill;
shape.LineFormat.FillFormat.FillType = FillType.NoFill;
shape.TextFrame.Text = "3D Text";
var portion = shape.TextFrame.Paragraphs[0].Portions[0];
portion.PortionFormat.FillFormat.FillType = FillType.Pattern;
portion.PortionFormat.FillFormat.PatternFormat.ForeColor.Color = Color.DarkOrange;
portion.PortionFormat.FillFormat.PatternFormat.BackColor.Color = Color.White;
portion.PortionFormat.FillFormat.PatternFormat.PatternStyle = PatternStyle.LargeGrid;
shape.TextFrame.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 128;
var textFrameFormat = shape.TextFrame.TextFrameFormat;
textFrameFormat.Transform = TextShapeType.ArchUp;
textFrameFormat.ThreeDFormat.ExtrusionHeight = 3.5f;
textFrameFormat.ThreeDFormat.Depth = 3;
textFrameFormat.ThreeDFormat.Material = MaterialPresetType.Plastic;
textFrameFormat.ThreeDFormat.LightRig.Direction = LightingDirection.Top;
textFrameFormat.ThreeDFormat.LightRig.LightType = LightRigPresetType.Balanced;
textFrameFormat.ThreeDFormat.LightRig.SetRotation(0, 0, 40);
textFrameFormat.ThreeDFormat.Camera.CameraType = CameraPresetType.PerspectiveContrastingRightFacing;
using var thumbnail = slide.GetImage(imageScale, imageScale);
thumbnail.Save("text_3d.png");
presentation.Save("text_3d.pptx", SaveFormat.Pptx);

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‑be ment. Renderelés vagy exportálás során fix elrendezésű formátumokba a 3D jelenet rasterizálódik vagy 2D eredményként kerül a kimenetre. Ez akkor is é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 néző nem tudja forgatni az export után.
- A végső megjelenés a kamera, fényrig, anyag, extrudálás, kitöltés és a dia skálázás kombinációjától függ.
- Ha meg szeretné tekinteni az örökölt vagy sablon alapú formázási értékeket, olvassa el a hatásos alakzat tulajdonságok oldalt.
- Néhány kimeneti formátum nem képes tárolni a szerkeszthető PowerPoint 3D formázást. Ezekben a formátumokban a vizuális eredmény renderelt, nem szerkeszthető 3D beállításként marad meg.
GYIK
Képes-e az Aspose.Slides interaktív 3D prezentációk létrehozására?
Az Aspose.Slides létrehozza és rendereli a PowerPoint 3D effektusokat alakzatokra és szövegre. Nem tesz exportált képeket, PDF‑eket vagy HTML oldalakat interaktív 3D jelenetekké, amelyet a felhasználó forgathat. PPTX‑ben a 3D formázás szerkeszthető marad a PowerPoint‑ban, ha a formátum támogatja.
Mi a különbség egy 3D modell és egy 3D effektus között?
A 3D modell egy különálló 3D objektum, amelyet a prezentációba szúrnak be. A 3D effektus egy formázás, amelyet egy szabványos PowerPoint alakzatra vagy szövegre alkalmaznak, például forgatás, extrudálás, perem, megvilágítás és anyag. Ez a cikk a 3D effektusokat tárgyalja.
Milyen beállítások szükségesek egy látható 3D alakzathoz?
Legalább egy kamera forgatást és vagy extrudálást vagy mélységet kell beállítani. Gyakorlatban ajánlott a fényrig és az anyag beállítása is, hogy a renderelt felületeknek egyértelmű kiemelései és árnyékai legyenek.
Alkalmazhatok‑e 3D effektusokat alakzatokra és szövegre egyaránt?
Igen. Használja a IShape.ThreeDFormat‑t az alakzat testére, és a ITextFrameFormat.ThreeDFormat‑t a szövegre.
Megjelennek‑e a 3D effektusok exportáláskor képekre, PDF‑re, HTML‑re vagy videó keretekre?
Igen. Az Aspose.Slides rendereli a 3D effektusokat diaképek, PDF‑kimenet, HTML‑kimenet és a videókonverzióhoz használt keretek előállítása során. Az exportált kimenet a renderelt megjelenést tartalmazza, nem szerkeszthető 3D objektumot.
Kiolvashatom‑e a végső 3D értékeket az öröklődés és a sablon beállítások alkalmazása után?
Igen. Használja a hatásos formázási API‑kat, amelyek a Shape Effective Properties leírásában szerepelnek, a végső kamera, fényrig, bevel és egyéb 3D értékek kiolvasásához.