3D Презентация
Обзор
Как вы обычно создаете 3D презентацию PowerPoint? Microsoft PowerPoint позволяет создавать 3D презентации, добавляя туда 3D модели, применяя 3D эффекты к фигурам, создавая 3D текст, загружая 3D графику в презентацию, создавая 3D анимации PowerPoint.
Создание 3D эффектов значительно улучшает вашу презентацию, превращая ее в 3D презентацию, и это может быть самым простым способом реализации 3D презентации. С версии Aspose.Slides 20.9 добавлен новый кросс-платформенный 3D движок. Новый 3D движок позволяет экспортировать и растрировать фигуры и текст с 3D эффектами. В предыдущих версиях фигуры с примененными 3D эффектами отображались плоско. Но теперь стало возможным отображать фигуры с полноценным 3D. Кроме того, теперь можно создавать фигуры с 3D эффектами через публичный API Slides.
В API Aspose.Slides, чтобы сделать фигуру 3D фигурой PowerPoint, используйте свойство IShape.ThreeDFormat, которое наследует функции интерфейса IThreeDFormat:
- BevelBottom и BevelTop: задайте фаску для фигуры, определите тип фаски (например, Угол, Круг, Мягкий Круг), определите высоту и ширину фаски.
- Camera: используется для имитации движения камеры вокруг объекта. Другими словами, задавая вращение камеры, зум и другие параметры - вы можете взаимодействовать со своими фигурами как с 3D моделью в PowerPoint.
- ContourColor и ContourWidth: задайте параметры контура, чтобы фигура выглядела как 3D фигура PowerPoint.
- Depth, ExtrusionColor и ExtrusionHeight: используются для придания фигуре трехмерности, что означает преобразование 2D фигуры в 3D фигуру, путем задания ее глубины или экструзии.
- LightRig: может создать световой эффект для 3D фигуры. Логика этого свойства схожа с Camera, вы можете задать вращение света относительно 3D фигуры и выбрать тип света.
- Material: настройка типа материала 3D фигуры может добавить более живой эффект. Свойство предоставляет набор предустановленных материалов, таких как: Металл, Пластик, Порошок, Матовая поверхность и т.д.
Все 3D функции могут быть применены как к фигурам, так и к тексту. Давайте посмотрим, как получить доступ к свойствам, упомянутым выше, а затем рассмотрим их подробно шаг за шагом:
using (Presentation pres = new Presentation())
{
IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 200, 200);
shape.TextFrame.Text = "3D";
shape.TextFrame.Paragraphs[0].ParagraphFormat.DefaultPortionFormat.FontHeight = 64;
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;
pres.Slides[0].GetThumbnail(2, 2).Save("sample_3d.png");
pres.Save("sandbox_3d.pptx", SaveFormat.Pptx);
}
Созданный мини-просмотр выглядит так:
3D Вращение
Возможно вращать 3D фигуры PowerPoint в 3D плоскости, что делает их более интерактивными. Чтобы вращать 3D фигуру в PowerPoint, вы обычно используете следующее меню:
В API Aspose.Slides вращение 3D фигуры может управляться с помощью свойства IThreeDFormat.Camera:
IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 200, 200);
shape.ThreeDFormat.Camera.SetRotation(20, 30, 40);
// ... установить другие параметры 3D сцены
pres.Slides[0].GetThumbnail(2, 2).Save("sample_3d.png");
3D Глубина и Экструзия
Чтобы придать третье измерение вашей фигуре и сделать ее 3D фигурой, используйте свойства IThreeDFormat.ExtrusionHeight и IThreeDFormat.ExtrusionColor.Color:
IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 200, 200);
shape.ThreeDFormat.Camera.SetRotation(20, 30, 40);
shape.ThreeDFormat.ExtrusionHeight = 100;
shape.ThreeDFormat.ExtrusionColor.Color = Color.Purple;
// ... установить другие параметры 3D сцены
pres.Slides[0].GetThumbnail(2, 2).Save("sample_3d.png");
Обычно вы используете меню Глубина в PowerPoint, чтобы задать Глубину для 3D фигуры PowerPoint:
3D Градиент
Градиент может использоваться для заливки цвета 3D фигуры PowerPoint. Давайте создадим фигуру с градиентной заливкой и применим к ней 3D эффект:
using (Presentation pres = new Presentation())
{
IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 250, 250);
shape.TextFrame.Text = "3D Градиент";
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.ExtrusionHeight = 150;
shape.ThreeDFormat.ExtrusionColor.Color = Color.DarkOrange;
pres.Slides[0].GetThumbnail(2, 2).Save("sample_3d.png");
}
А вот и результат:
Кроме градиентной заливки, возможно заполнить фигуры изображением:
shape.FillFormat.FillType = FillType.Picture;
shape.FillFormat.PictureFillFormat.Picture.Image = pres.Images.AddImage(File.ReadAllBytes("image.jpg"));
shape.FillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
// .. настройка 3D: shape.ThreeDFormat.Camera, shape.ThreeDFormat.LightRig, shape.ThreeDFormat.Extrusion* свойства
pres.Slides[0].GetThumbnail(2, 2).Save("sample_3d.png");
Вот как это выглядит:
3D Текст (WordArt)
Aspose.Slides также позволяет применять 3D эффекты к тексту. Для создания 3D текста можно использовать эффект трансформации WordArt:
using (Presentation pres = new Presentation())
{
IAutoShape shape = pres.Slides[0].Shapes.AddAutoShape(ShapeType.Rectangle, 200, 150, 250, 250);
shape.FillFormat.FillType = FillType.NoFill;
shape.LineFormat.FillFormat.FillType = FillType.NoFill;
shape.TextFrame.Text = "3D Текст";
Portion portion = (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;
ITextFrame textFrame = shape.TextFrame;
// настройка эффекта трансформации WordArt "Арка вверх"
textFrame.TextFrameFormat.Transform = TextShapeType.ArchUp;
textFrame.TextFrameFormat.ThreeDFormat.ExtrusionHeight = 3.5f;
textFrame.TextFrameFormat.ThreeDFormat.Depth = 3;
textFrame.TextFrameFormat.ThreeDFormat.Material = MaterialPresetType.Plastic;
textFrame.TextFrameFormat.ThreeDFormat.LightRig.Direction = LightingDirection.Top;
textFrame.TextFrameFormat.ThreeDFormat.LightRig.LightType = LightRigPresetType.Balanced;
textFrame.TextFrameFormat.ThreeDFormat.LightRig.SetRotation(0, 0, 40);
textFrame.TextFrameFormat.ThreeDFormat.Camera.CameraType = CameraPresetType.PerspectiveContrastingRightFacing;
pres.Slides[0].GetThumbnail(2, 2).Save("text3d.png");
pres.Save("text3d.pptx", SaveFormat.Pptx);
}
Вот такой результат:
Не Поддерживается - В ближайшее время
Следующие функции 3D PowerPoint пока не поддерживаются:
- Фаска
- Материал
- Контур
- Освещение
Мы продолжаем улучшать наш 3D движок, и эти функции находятся в процессе дальнейшей реализации.