วิธีใช้เอฟเฟกต์ 3 มิติและเงากับรูปร่าง

วิธีใช้เอฟเฟกต์ 3 มิติและเงากับรูปร่าง

Aspose.Slides FOSS มีระบบเอฟเฟกต์อิสระสองระบบบนแต่ละรูปทรง:

  • shape.EffectFormat: เอฟเฟกต์ภาพ 2 มิติ: เงานอก, แสงเรืองแสง, เบลอ, ขอบนุ่ม
  • shape.ThreeDFormat: ลักษณะ 3 มิติ: บีเวล, มุมมองกล้อง, ระบบไฟ, วัสดุ, ความลึก

ทั้งสองระบบสามารถรวมเข้าด้วยกันบนรูปทรงเดียวกันได้.


ข้อกำหนดเบื้องต้น

dotnet add package Aspose.Slides.Foss

เพิ่มเงาตกด้านนอก

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Rectangle, 100, 100, 300, 120
);
shape.AddTextFrame("Shadowed Shape");

var ef = shape.EffectFormat;
ef.EnableOuterShadowEffect();
ef.OuterShadowEffect.BlurRadius = 10;       // softness in points
ef.OuterShadowEffect.Direction = 315;       // 315 degrees = upper-left
ef.OuterShadowEffect.Distance = 8;          // offset in points
ef.OuterShadowEffect.ShadowColor.Color = Color.FromArgb(128, 0, 0, 0);

prs.Save("shadow.pptx", SaveFormat.Pptx);

ค่าทั่วไปของ Direction: 0=ขวา, 45=ล่างขวา, 90=ลง, 180=ซ้าย, 270=ขึ้น, 315=บนซ้าย.


เพิ่มเอฟเฟกต์เรืองแสง

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Ellipse, 150, 100, 250, 250
);

var ef = shape.EffectFormat;
ef.EnableGlowEffect();
ef.GlowEffect.Radius = 20;
ef.GlowEffect.Color.Color = Color.Gold;

prs.Save("glow.pptx", SaveFormat.Pptx);

ใช้ Gaussian Blur

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Rectangle, 100, 100, 350, 180
);
shape.EffectFormat.SetBlurEffect(radius: 10, grow: true);

prs.Save("blur.pptx", SaveFormat.Pptx);

grow: true ขยายพื้นที่เบลอออกนอกขอบเขตของรูปทรง; grow: false ตัดเบลอให้อยู่ภายในรูปทรง.


ใช้เบเวล 3 มิติ

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Rectangle, 150, 150, 280, 120
);
shape.AddTextFrame("3D Button");

var tdf = shape.ThreeDFormat;
tdf.BevelTop.BevelType = BevelPresetType.Circle;
tdf.BevelTop.Width = 12;
tdf.BevelTop.Height = 6;

prs.Save("bevel.pptx", SaveFormat.Pptx);

BevelPresetType ค่า: Circle, RelaxedInset, CoolSlant, Divot, Riblet, HardEdge, Slope, Convex


3D Bevel พร้อมกล้องและอุปกรณ์แสง

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Rectangle, 150, 150, 280, 120
);
shape.AddTextFrame("Metal Button");

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("3d-metal.pptx", SaveFormat.Pptx);

รวมเงาและ 3D Bevel

ระบบเอฟเฟกต์ทั้งสองสามารถทำงานพร้อมกันบนรูปทรงเดียวกันได้:

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Drawing;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.RoundCornerRectangle, 150, 150, 320, 130
);
shape.AddTextFrame("Premium Card");

// Solid 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 = 12;
ef.OuterShadowEffect.Direction = 270;
ef.OuterShadowEffect.Distance = 6;
ef.OuterShadowEffect.ShadowColor.Color = Color.FromArgb(80, 0, 0, 0);

prs.Save("premium-card.pptx", SaveFormat.Pptx);

ตรวจสอบและลบเอฟเฟกต์

using Aspose.Slides.Foss;

using var prs = new Presentation();
var shape = prs.Slides[0].Shapes.AddAutoShape(
    ShapeType.Rectangle, 100, 100, 200, 100
);
var ef = shape.EffectFormat;

ef.EnableOuterShadowEffect();
ef.EnableGlowEffect();
Console.WriteLine($"Has effects: {!ef.IsNoEffects}");  // True

ef.DisableOuterShadowEffect();
ef.DisableGlowEffect();
Console.WriteLine($"Has effects: {!ef.IsNoEffects}");  // False

ดูเพิ่มเติม

 ภาษาไทย