Aspose.Slides FOSS for Java lets you apply professional-quality visual effects to PowerPoint shapes entirely in Java, with no Microsoft Office and no API keys. This post demonstrates the fill system, 2D effects, and 3D formatting available in the library.
Dolgu Sistemi
Her şeklin, erişilebilen bir dolgu biçimi vardır getFillFormat() bu, iç kısmının nasıl boyandığını kontrol eder. Beş dolgu türü, PowerPoint’in tasarım paletinin tam yelpazesini kapsar.
Katı Dolgu
En basit dolgu, isteğe bağlı şeffaflıkla düz bir renktir:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.ROUND_CORNER_RECTANGLE, 100, 100, 400, 150
);
shape.addTextFrame("Solid Fill");
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor().setColor(new Color(30, 80, 180));
prs.save("solid.pptx");
}
Doğrusal Degrade Dolgu
Degrade durakları, şekil boyunca bir renkten diğerine karışım yapmanızı sağlar:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.RECTANGLE, 100, 100, 400, 150
);
IFillFormat ff = shape.getFillFormat();
ff.setFillType(FillType.GRADIENT);
IGradientFormat gf = ff.getGradientFormat();
gf.setGradientShape(GradientShape.LINEAR);
gf.setLinearGradientAngle(90); // top-to-bottom
gf.getGradientStops().add(0.0f, new Color(30, 80, 180)); // top: blue
gf.getGradientStops().add(1.0f, new Color(0, 200, 160)); // bottom: teal
prs.save("gradient.pptx");
}
2D Visual Effects
Dış Düşen Gölge
Herhangi bir şekle yarı şeffaf bir düşen gölge ekleyin:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.ROUND_CORNER_RECTANGLE, 100, 100, 350, 150
);
shape.addTextFrame("Drop Shadow");
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor().setColor(Color.WHITE);
IEffectFormat ef = shape.getEffectFormat();
ef.enableOuterShadowEffect();
ef.getOuterShadowEffect().setBlurRadius(12);
ef.getOuterShadowEffect().setDirection(315); // upper-left
ef.getOuterShadowEffect().setDistance(8);
ef.getOuterShadowEffect().getShadowColor().setColor(new Color(100, 0, 0, 0));
prs.save("shadow.pptx");
}
Parıltı Efekti
Şekil kenarı etrafında renkli bir halo:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.ELLIPSE, 150, 100, 250, 250
);
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor().setColor(new Color(20, 60, 140));
IEffectFormat ef = shape.getEffectFormat();
ef.enableGlowEffect();
ef.getGlowEffect().setRadius(20);
ef.getGlowEffect().getColor().setColor(new Color(200, 0, 180, 255));
prs.save("glow.pptx");
}
3D Formatting
Köşe Yuvarlama ve Malzeme
Bu getThreeDFormat() yöntemi, herhangi bir düz şekle üç boyutlu bir görünüm kazandırır. En zengin sonucu elde etmek için bir kavis, bir kamera ön ayarı ve bir malzeme birleştirin:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.RECTANGLE, 150, 150, 300, 130
);
shape.addTextFrame("Metal Button");
// Blue solid fill
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor().setColor(new Color(20, 70, 160));
// 3D bevel + camera + light + material
IThreeDFormat 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("metal-button.pptx");
}
Aynı Şekilde Efektleri Birleştirme
Gölge ve 3D biçimlendirme tek bir şekilde bir arada bulunabilir, bu da cilalı “kart” tasarımlarını mümkün kılar:
import org.aspose.slides.foss.Presentation;
import org.aspose.slides.foss.ISlide;
import org.aspose.slides.foss.IAutoShape;
import org.aspose.slides.foss.IFillFormat;
import org.aspose.slides.foss.IGradientFormat;
import org.aspose.slides.foss.IEffectFormat;
import org.aspose.slides.foss.IThreeDFormat;
import org.aspose.slides.foss.ShapeType;
import org.aspose.slides.foss.FillType;
import org.aspose.slides.foss.GradientShape;
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;
import org.aspose.slides.foss.drawing.Color;
try (Presentation prs = new Presentation()) {
IAutoShape shape = prs.getSlides().get(0).getShapes().addAutoShape(
ShapeType.ROUND_CORNER_RECTANGLE, 120, 120, 360, 150
);
shape.addTextFrame("Premium Card");
// Fill
shape.getFillFormat().setFillType(FillType.SOLID);
shape.getFillFormat().getSolidFillColor().setColor(new Color(30, 80, 180));
// 3D bevel
IThreeDFormat tdf = shape.getThreeDFormat();
tdf.getBevelTop().setBevelType(BevelPresetType.CIRCLE);
tdf.getBevelTop().setWidth(8);
tdf.getCamera().setCameraType(CameraPresetType.PERSPECTIVE_ABOVE);
tdf.setMaterial(MaterialPresetType.PLASTIC);
// Drop shadow
IEffectFormat ef = shape.getEffectFormat();
ef.enableOuterShadowEffect();
ef.getOuterShadowEffect().setBlurRadius(14);
ef.getOuterShadowEffect().setDirection(270);
ef.getOuterShadowEffect().setDistance(8);
ef.getOuterShadowEffect().getShadowColor().setColor(new Color(70, 0, 0, 0));
prs.save("premium-card.pptx");
}
Kurulum
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
Office kurulumu gerekmez, lisans anahtarları gerekmez, ağ çağrıları yok; tüm işlem yerel olarak gerçekleşir.