Aspose.Slides FOSS for .NET позволяет применять визуальные эффекты профессионального качества к объектам PowerPoint полностью на C#, без Microsoft Office и без ключей API. В этой статье демонстрируются система заливки, 2D‑эффекты и 3D‑форматирование, доступные в библиотеке.
Система заполнения
У каждой фигуры есть FillFormat, который контролирует, как закрашивается её внутренность. Пять типов заливки охватывают весь спектр палитры дизайна PowerPoint.
Сплошная заливка
Самый простой тип заливки — сплошной цвет с необязательной прозрачностью:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.RoundCornerRectangle, 100, 100, 400, 150
);
shape.AddTextFrame("Solid Fill");
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 30, 80, 180);
prs.Save("solid.pptx", SaveFormat.Pptx);
Заливка линейным градиентом
Градиентные остановки позволяют плавно переходить от одного цвета к другому по всей форме:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.Rectangle, 100, 100, 400, 150
);
var ff = shape.FillFormat;
ff.FillType = FillType.Gradient;
var gf = ff.GradientFormat;
gf.GradientShape = GradientShape.Linear;
gf.LinearGradientAngle = 90; // top-to-bottom
gf.GradientStops.Add(0.0f, Color.FromArgb(255, 30, 80, 180)); // top: blue
gf.GradientStops.Add(1.0f, Color.FromArgb(255, 0, 200, 160)); // bottom: teal
prs.Save("gradient.pptx", SaveFormat.Pptx);
2D визуальные эффекты
Внешняя падающая тень
Прикрепите полупрозрачную отбрасываемую тень к любой фигуре:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.RoundCornerRectangle, 100, 100, 350, 150
);
shape.AddTextFrame("Drop Shadow");
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.White;
var ef = shape.EffectFormat;
ef.EnableOuterShadowEffect();
ef.OuterShadowEffect.BlurRadius = 12;
ef.OuterShadowEffect.Direction = 315; // upper-left
ef.OuterShadowEffect.Distance = 8;
ef.OuterShadowEffect.ShadowColor.Color = Color.FromArgb(100, 0, 0, 0);
prs.Save("shadow.pptx", SaveFormat.Pptx);
Эффект свечения
Цветное свечение вокруг края фигуры:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.Ellipse, 150, 100, 250, 250
);
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 20, 60, 140);
var ef = shape.EffectFormat;
ef.EnableGlowEffect();
ef.GlowEffect.Radius = 20;
ef.GlowEffect.Color.Color = Color.FromArgb(200, 0, 180, 255);
prs.Save("glow.pptx", SaveFormat.Pptx);
3D‑форматирование
Фаска и материал
Свойство ThreeDFormat придаёт любой плоской форме трёхмерный вид. Скомбинируйте фаску с предустановкой камеры и материалом для наилучшего результата:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.Rectangle, 150, 150, 300, 130
);
shape.AddTextFrame("Metal Button");
// Blue solid fill
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 20, 70, 160);
// 3D bevel + camera + light + material
var tdf = shape.ThreeDFormat;
tdf.BevelTop.BevelType = BevelPresetType.Circle;
tdf.BevelTop.Width = 10;
tdf.BevelTop.Height = 5;
tdf.Camera.CameraType = CameraPresetType.PerspectiveAbove;
tdf.LightRig.LightType = LightRigPresetType.Balanced;
tdf.LightRig.Direction = LightingDirection.Top;
tdf.Material = MaterialPresetType.Metal;
tdf.Depth = 20;
prs.Save("metal-button.pptx", SaveFormat.Pptx);
Комбинирование эффектов на одной фигуре
Тень и 3D‑форматирование могут сосуществовать в одной фигуре, позволяя создавать изысканные «card»‑дизайны:
using Aspose.Slides.Foss;
using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
ShapeType.RoundCornerRectangle, 120, 120, 360, 150
);
shape.AddTextFrame("Premium Card");
// Fill
shape.FillFormat.FillType = FillType.Solid;
shape.FillFormat.SolidFillColor.Color = Color.FromArgb(255, 30, 80, 180);
// 3D bevel
var tdf = shape.ThreeDFormat;
tdf.BevelTop.BevelType = BevelPresetType.Circle;
tdf.BevelTop.Width = 8;
tdf.Camera.CameraType = CameraPresetType.PerspectiveAbove;
tdf.Material = MaterialPresetType.Plastic;
// Drop shadow
var ef = shape.EffectFormat;
ef.EnableOuterShadowEffect();
ef.OuterShadowEffect.BlurRadius = 14;
ef.OuterShadowEffect.Direction = 270;
ef.OuterShadowEffect.Distance = 8;
ef.OuterShadowEffect.ShadowColor.Color = Color.FromArgb(70, 0, 0, 0);
prs.Save("premium-card.pptx", SaveFormat.Pptx);
Установка
dotnet add package Aspose.Slides.Foss
Нет установки Office, нет лицензионных ключей, нет сетевых вызовов; вся обработка происходит локально.