Trabalhar com efeitos 3D e efeitos visuais Aspose.Slides FOSS para Java

Este guia mostra como aplicar efeitos visuais e formatação 3D a formas em apresentações do PowerPoint usando Aspose.Slides FOSS para Java . Cada forma expõe dois objetos de formatamento:

  • EffectFormat (shape.getEffectFormat()): Efeitos visuais 2D sombra, brilho, borda macia, desfoque, reflexão
  • ThreeDFormat (shape.getThreeDFormat()): aparência 3D bisel, projeção de câmera, plataforma luminosa, material, profundidade de extrusão

Ambos os objetos de formatação persistem através dos ciclos de armazenamento/recarregamento.


Efeitos visuais (Formatação de efeitos)

Sombra de queda externa

Chama-me . ef.enableOuterShadowEffect() para ativar a sombra externa, em seguida, definir blurRadius, direction, distance, e shadowColor:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 100, 100, 300, 120);
    shape.addTextFrame("Shadowed Text");

    var ef = shape.getEffectFormat();
    ef.enableOuterShadowEffect();
    ef.getOuterShadowEffect().setBlurRadius(10);      // softness in points
    ef.getOuterShadowEffect().setDirection(315);       // angle: 315 = upper-left cast
    ef.getOuterShadowEffect().setDistance(8);          // offset in points
    ef.getOuterShadowEffect().getShadowColor().setColor(Color.fromArgb(128, 0, 0, 0));  // semi-transparent black

    prs.save("shadow.pptx", SaveFormat.PPTX);
}

Comum direction valores: 0 - Certo, não., 45 = inferior direita, 90 = para baixo, 270 = para cima, 315 - A esquerda.

Efeito de brilho

Chama-me . ef.enableGlowEffect() para adicionar um brilho colorido em torno da forma, então definir radius e a cor do brilho:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.ELLIPSE, 150, 100, 200, 200);

    var ef = shape.getEffectFormat();
    ef.enableGlowEffect();
    ef.getGlowEffect().setRadius(15);
    ef.getGlowEffect().getColor().setColor(Color.fromArgb(255, 255, 215, 0));  // gold

    prs.save("glow.pptx", SaveFormat.PPTX);
}

Bordas macias (bordas com penas)

Chama-me . ef.enableSoftEdgeEffect() para adicionar uma borda emplumada ao redor da forma, então definir radius para controlar a distância das penas em pontos:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 100, 100, 350, 180);

    var ef = shape.getEffectFormat();
    ef.enableSoftEdgeEffect();
    ef.getSoftEdgeEffect().setRadius(12);   // feather radius in points

    prs.save("soft-edge.pptx", SaveFormat.PPTX);
}

Desfoque

Chama-me . shape.getEffectFormat().setBlurEffect() Com um raio de desfoque e uma marca de crescimento para aplicar um efeito de desenfoco à forma:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 100, 100, 350, 180);

    shape.getEffectFormat().setBlurEffect(8, true);

    prs.save("blur.pptx", SaveFormat.PPTX);
}

Verificação e eliminação de efeitos

Verificação ef.isNoEffects() para detectar se qualquer efeito está ativo, em seguida, chamar disableOuterShadowEffect() ou a) disableGlowEffect() para eliminar efeitos específicos:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 100, 100, 200, 100);
    var ef = shape.getEffectFormat();

    ef.enableOuterShadowEffect();
    ef.enableGlowEffect();
    System.out.println("Has effects: " + !ef.isNoEffects());  // true

    ef.disableOuterShadowEffect();
    ef.disableGlowEffect();
    System.out.println("Has effects: " + !ef.isNoEffects());  // false
}

3D Formatting (ThreeDFormat)

Efeito de tremor

Set (s) tdf.getBevelTop().setBevelType() a uma BevelPresetType valor e configuração width e a) height para aplicar uma base na face superior da forma:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.BevelPresetType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 150, 150, 250, 120);
    shape.addTextFrame("3D Button");

    var tdf = shape.getThreeDFormat();
    tdf.getBevelTop().setBevelType(BevelPresetType.CIRCLE);
    tdf.getBevelTop().setWidth(12);
    tdf.getBevelTop().setHeight(6);

    prs.save("bevel.pptx", SaveFormat.PPTX);
}

Valores de tipo BevelPreset: CIRCLE, RELAXED_INSET, COOL_SLANT, DIVOT, RIBLET, HARD_EDGE, SLOPE, CONVEX

Preconfigurado da câmera

Set (s) tdf.getCamera().setCameraType() a uma CameraPresetType valor para alterar o ângulo de projecção aplicado à forma 3D:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.BevelPresetType;
import org.aspose.slides.foss.CameraPresetType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 150, 150, 250, 120);
    var tdf = shape.getThreeDFormat();
    tdf.getBevelTop().setBevelType(BevelPresetType.CIRCLE);
    tdf.getBevelTop().setWidth(10);
    tdf.getCamera().setCameraType(CameraPresetType.PERSPECTIVE_ABOVE);
    prs.save("camera.pptx", SaveFormat.PPTX);
}

Equipamento e Material de Iluminação

Set (s) tdf.getLightRig().setLightType() e a) tdf.getLightRig().setDirection() para controlar como a luz cai sobre a forma, em seguida, definir tdf.setMaterial() a um dos Estados-Membros. MaterialPresetType valores:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.BevelPresetType;
import org.aspose.slides.foss.CameraPresetType;
import org.aspose.slides.foss.LightRigPresetType;
import org.aspose.slides.foss.LightingDirection;
import org.aspose.slides.foss.MaterialPresetType;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.RECTANGLE, 150, 150, 250, 120);
    shape.addTextFrame("Metal Button");

    var tdf = shape.getThreeDFormat();
    tdf.getBevelTop().setBevelType(BevelPresetType.CIRCLE);
    tdf.getBevelTop().setWidth(10);
    tdf.getBevelTop().setHeight(5);
    tdf.getCamera().setCameraType(CameraPresetType.PERSPECTIVE_ABOVE);
    tdf.getLightRig().setLightType(LightRigPresetType.BALANCED);
    tdf.getLightRig().setDirection(LightingDirection.TOP);
    tdf.setMaterial(MaterialPresetType.METAL);
    tdf.setDepth(20);

    prs.save("3d-metal.pptx", SaveFormat.PPTX);
}

Valores de MaterialPresetType: MATTE, WARM_MATTE, PLASTIC, METAL, FLAT, SOFT_EDGE, CLEAR


Combinação de efeitos 2D e 3D

Pode aplicar as duas. getEffectFormat() e a) getThreeDFormat() com a mesma forma:

import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.BevelPresetType;
import org.aspose.slides.foss.CameraPresetType;
import org.aspose.slides.foss.MaterialPresetType;
import org.aspose.slides.foss.drawing.Color;
import org.aspose.slides.foss.export.SaveFormat;

try (Presentation prs = new Presentation()) {
    var shape = prs.getSlides().get(0).getShapes().addAutoShape(ShapeType.ROUND_CORNER_RECTANGLE, 150, 150, 300, 120);
    shape.addTextFrame("Premium Card");

    // Solid fill
    shape.getFillFormat().setFillType(FillType.SOLID);
    shape.getFillFormat().getSolidFillColor().setColor(Color.fromArgb(255, 30, 80, 180));

    // 3D bevel
    var tdf = shape.getThreeDFormat();
    tdf.getBevelTop().setBevelType(BevelPresetType.CIRCLE);
    tdf.getBevelTop().setWidth(8);
    tdf.getCamera().setCameraType(CameraPresetType.PERSPECTIVE_ABOVE);
    tdf.setMaterial(MaterialPresetType.PLASTIC);

    // Drop shadow
    var ef = shape.getEffectFormat();
    ef.enableOuterShadowEffect();
    ef.getOuterShadowEffect().setBlurRadius(12);
    ef.getOuterShadowEffect().setDirection(270);
    ef.getOuterShadowEffect().setDistance(6);
    ef.getOuterShadowEffect().getShadowColor().setColor(Color.fromArgb(80, 0, 0, 0));

    prs.save("premium-card.pptx", SaveFormat.PPTX);
}

Ver também:

 Português