在演示文稿中使用 JavaScript 应用形状效果
介绍
虽然 PowerPoint 中的效果可用于让形状突出,但它们不同于 填充 或轮廓。使用 PowerPoint 效果,您可以在形状上创建逼真的反射、扩展形状的发光等。

PowerPoint 提供六种可应用于形状的效果。您可以对一个形状应用一个或多个效果。
某些效果组合看起来比其他组合更好。为此,PowerPoint 在 预设 下提供了选项。预设选项是已知效果良好的两种或多种效果的组合。通过选择预设,您无需浪费时间测试或组合不同的效果来寻找合适的组合。
Aspose.Slides 在 EffectFormat 类下提供属性和方法,允许您在 PowerPoint 演示文稿中对形状应用相同的效果。
应用阴影效果
Aspose.Slides for Node.js via Java 支持形状的外部和内部阴影。您可以自定义其颜色、方向、距离和模糊半径,以匹配演示文稿的设计。
应用外部阴影
使用外部阴影可使卡片或面板在幻灯片背景上突出。阴影延伸到形状边缘之外,产生形状在幻灯片上方凸起的感觉。调整其颜色、方向、距离和模糊半径,以匹配模板的光照和样式。
此 JavaScript 代码演示如何对矩形应用 外部阴影效果:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.RoundCornerRectangle, 20, 20, 200, 100);
shape.getEffectFormat().enableOuterShadowEffect();
const color = java.newInstanceSync("java.awt.Color", 169, 169, 169);
shape.getEffectFormat().getOuterShadowEffect().getShadowColor().setColor(color);
shape.getEffectFormat().getOuterShadowEffect().setDistance(10);
shape.getEffectFormat().getOuterShadowEffect().setDirection(45);
presentation.save("shadow_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}

应用内部阴影
在复现模板的视觉样式时,使用内部阴影可为卡片或面板赋予凹陷的外观。外部阴影延伸到形状外部,使其看起来凸起,而内部阴影则对其边缘内部进行遮蔽。
调用 enableInnerShadowEffect,然后配置由 getInnerShadowEffect 返回的阴影。更大的模糊半径值会产生更柔和的边缘。
此 JavaScript 示例创建一个浅蓝色卡片,带有深灰色内部阴影,并将其保存为 PPTX 文件。阴影方向为 225 度,距离为 7 点,模糊半径为 6 点:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 20, 20, 200, 100);
shape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Solid));
const fillColor = java.newInstanceSync("java.awt.Color", 173, 216, 230);
shape.getFillFormat().getSolidFillColor().setColor(fillColor);
shape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
shape.getEffectFormat().enableInnerShadowEffect();
const shadow = shape.getEffectFormat().getInnerShadowEffect();
const color = java.newInstanceSync("java.awt.Color", 105, 105, 105);
shadow.getShadowColor().setColor(color);
shadow.setDirection(225);
shadow.setDistance(7);
shadow.setBlurRadius(6);
presentation.save("inner_shadow_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}

若要移除内部阴影,请在形状的 EffectFormat 上调用 disableInnerShadowEffect。
应用反射效果
在 Aspose.Slides for Node.js via Java 中应用反射效果时,您可以为形状添加镜面反射,并调整距离、透明度和大小等参数。此效果通过为形状提供更精致、专业的外观来提升演示文稿的美感。它使用简洁的代码即可轻松实现,能够快速在多个元素上应用以实现一致的设计。
此 JavaScript 代码演示如何对形状应用 反射效果:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.RoundCornerRectangle, 20, 20, 200, 100);
shape.getEffectFormat().enableReflectionEffect();
shape.getEffectFormat().getReflectionEffect().setRectangleAlign(java.newByte(aspose.slides.RectangleAlignment.Bottom));
shape.getEffectFormat().getReflectionEffect().setDirection(90);
shape.getEffectFormat().getReflectionEffect().setDistance(40);
shape.getEffectFormat().getReflectionEffect().setBlurRadius(2);
presentation.save("reflection_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}

应用发光效果
在 Aspose.Slides for Node.js via Java 中对形状应用发光效果时,您可以在形状周围添加柔和、发光的光晕,并调整颜色和大小等属性。此效果有助于突出形状,并为演示文稿添加吸引人、醒目的视觉元素。它使用极少的代码即可轻松实现,提升幻灯片的整体外观。
此 JavaScript 代码演示如何对形状应用 发光效果:
const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.RoundCornerRectangle, 20, 20, 200, 100);
shape.getEffectFormat().enableGlowEffect();
const color = java.getStaticFieldValue("java.awt.Color", "MAGENTA");
shape.getEffectFormat().getGlowEffect().getColor().setColor(color);
shape.getEffectFormat().getGlowEffect().setRadius(15);
presentation.save("glow_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}

应用柔化边缘效果
在 Aspose.Slides for Node.js via Java 中应用柔化边缘效果时,您可以在形状的边缘创建平滑、模糊的过渡。此效果提供更细腻、精致的外观,适用于需要柔和外观的设计。您可以轻松调整半径等参数,以在演示文稿中的各种形状上实现所需效果。
此 JavaScript 代码演示如何对形状应用 柔化边缘效果:
const aspose = { slides: require("aspose.slides.via.java") };
const presentation = new aspose.slides.Presentation();
try {
const slide = presentation.getSlides().get_Item(0);
const shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.RoundCornerRectangle, 20, 20, 200, 150);
shape.getEffectFormat().enableSoftEdgeEffect();
shape.getEffectFormat().getSoftEdgeEffect().setRadius(8);
presentation.save("soft_edges_effect.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}

常见问题
是否可以对同一形状应用多个效果?
是的,您可以在单个形状上组合不同的效果,如阴影、反射和发光,以实现更具动感的外观。
可以对哪些形状应用效果?
您可以对各种形状应用效果,包括自动形状、图表、表格、图片、SmartArt 对象、OLE 对象等。
是否可以对组合形状应用效果?
是的,您可以对组合形状应用效果。该效果将应用于整个组合。