Aspose.Slides FOSS for Java cho phép bạn áp dụng các hiệu ứng hình ảnh chất lượng chuyên nghiệp cho các hình dạng PowerPoint hoàn toàn bằng Java, mà không cần Microsoft Office và không cần khóa API. Bài viết này trình bày hệ thống tô màu, các hiệu ứng 2D và định dạng 3D có sẵn trong thư viện.
Hệ thống Điền
Mỗi hình dạng đều có một định dạng tô màu được truy cập qua getFillFormat(), điều này kiểm soát cách nội thất của nó được vẽ. Năm loại tô màu bao phủ toàn bộ dải màu thiết kế của PowerPoint.
Đổ màu đặc
Lớp tô màu đơn giản nhất, một màu phẳng với độ trong suốt tùy chọn:
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");
}
Đổ màu gradient tuyến tính
Các điểm dừng gradient cho phép bạn pha trộn từ màu này sang màu khác trên toàn bộ hình dạng:
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");
}
Hiệu ứng hình ảnh 2D
Bóng đổ ngoài
Gắn bóng đổ bán trong suốt vào bất kỳ hình dạng nào:
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");
}
Hiệu ứng phát sáng
Một hào quang màu quanh cạnh hình dạng:
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");
}
Định dạng 3D
Góc vát và Vật liệu
Phương pháp getThreeDFormat() cho bất kỳ hình phẳng nào một diện mạo ba chiều. Kết hợp bevel với camera preset và một vật liệu để có kết quả phong phú nhất:
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");
}
Kết hợp các hiệu ứng trên cùng một hình dạng
Bóng đổ và định dạng 3D có thể cùng tồn tại trên một hình dạng duy nhất, cho phép tạo ra các thiết kế “card” tinh tế:
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");
}
Cài đặt
<dependency>
<groupId>org.aspose.slides.foss</groupId>
<artifactId>aspose-slides-foss</artifactId>
<version>1.0.0</version>
</dependency>
Không cần cài đặt Office, không cần khóa giấy phép, không có cuộc gọi mạng; mọi xử lý đều diễn ra cục bộ.