Εργασία με 3D Εφέ και Οπτικά Εφέ — Aspose.Slides FOSS for Java
Το Aspose.Slides FOSS for Java παρέχει δύο ξεχωριστά συστήματα εφέ που είναι προσβάσιμα σε κάθε σχήμα:
EffectFormat(shape.getEffectFormat()): 2D οπτικά εφέ: σκιά, λάμψη, μαλακό άκρο, θόλωση, αντανάκλασηThreeDFormat(shape.getThreeDFormat()): 3D εμφάνιση: λοξότμηση, προβολή κάμερας, σύστημα φωτισμού, υλικό, βάθος εξώθησης
Και τα δύο παραμένουν σε κύκλους αποθήκευσης/επαναφόρτωσης.
Οπτικά Εφέ (EffectFormat)
Εξωτερική σκιά
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);
}Κοινές direction τιμές: 0 = δεξιά, 45 = κάτω δεξιά, 90 = κάτω, 270 = πάνω, 315 = πάνω αριστερά.
Εφέ Λάμψης
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);
}Μαλακό Άκρο (Φτερωτό Περίγραμμα)
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);
}Θόλωση
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);
}Έλεγχος και αφαίρεση εφέ
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
}Διαμόρφωση 3Δ (ThreeDFormat)
Εφέ Λοξότμησης
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);
}Τιμές BevelPresetType: CIRCLE, RELAXED_INSET, COOL_SLANT, DIVOT, RIBLET, HARD_EDGE, SLOPE, CONVEX
Προεπιλογή κάμερας
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);
}Σύστημα Φωτισμού και Υλικό
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);
}MaterialPresetType τιμές: MATTE, WARM_MATTE, PLASTIC, METAL, FLAT, SOFT_EDGE, CLEAR
Συνδυασμός 2D και 3D Εφέ
Μπορείτε να εφαρμόσετε και τα getEffectFormat() και getThreeDFormat() στο ίδιο σχήμα:
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);
}