Aspose.Slides FOSS for C++ lets you apply professional-quality visual effects to PowerPoint shapes in native C++, with no Microsoft Office and no API keys. This post demonstrates the fill system, 2D effects, and 3D formatting available in the library.
نظام المملوء
كل شكل له شكل واحد fill_format() يسيطر على كيفية رسم الداخلي.الأربعة أنواع ملء تظهر أدناه تغطي جوهر لوحة التصميم في PowerPoint.
ملء صلب
أسهل ملء، لون مسطح مع شفافية اختيارية:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::ROUND_CORNER_RECTANGLE, 100, 100, 400, 150
);
shape.text_frame()->set_text("Solid Fill");
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 30, 80, 180));
prs.save("solid.pptx", SaveFormat::PPTX);
return 0;
}
خطية Gradient Fill
توقف الجرادين يسمح لك لخلط من لون إلى آخر عبر الشكل:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/gradient_format.h>
#include <Aspose/Slides/Foss/gradient_shape.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 400, 150
);
auto& ff = shape.fill_format();
ff.set_fill_type(FillType::GRADIENT);
auto& gf = ff.gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(90); // top-to-bottom
gf.gradient_stops().add(0.0f, Color::from_argb(255, 30, 80, 180)); // top: blue
gf.gradient_stops().add(1.0f, Color::from_argb(255, 0, 200, 160)); // bottom: teal
prs.save("gradient.pptx", SaveFormat::PPTX);
return 0;
}
2D Visual Effects
الخروج من الظل
ضع ظلًا شبه شفافًّا في أي شكل:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::ROUND_CORNER_RECTANGLE, 100, 100, 350, 150
);
shape.text_frame()->set_text("Drop Shadow");
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::white);
auto& ef = shape.effect_format();
ef.enable_outer_shadow_effect();
auto* shadow = ef.outer_shadow_effect();
shadow->set_blur_radius(12);
shadow->set_direction(315); // upper-left
shadow->set_distance(8);
shadow->shadow_color().set_color(Color::from_argb(100, 0, 0, 0));
prs.save("shadow.pptx", SaveFormat::PPTX);
return 0;
}
تأثير Glow
حلوى ملونة حول الحافة الشكلية:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::ELLIPSE, 150, 100, 250, 250
);
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 20, 60, 140));
auto& ef = shape.effect_format();
ef.enable_glow_effect();
auto* glow = ef.glow_effect();
glow->set_radius(20);
glow->color().set_color(Color::from_argb(200, 0, 180, 255));
prs.save("glow.pptx", SaveFormat::PPTX);
return 0;
}
3D Formatting
اللام والمالية
وَالْمُتَّقِينَ three_d_format() طريقة يعطي أي شكل مسطح مظهر ثلاثي الأبعاد.مزيج من الرماد مع كاميرا المرفق والمواد للحصول على النتيجة الأكثر ثراء:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/bevel_preset_type.h>
#include <Aspose/Slides/Foss/camera_preset_type.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/light_rig_preset_type.h>
#include <Aspose/Slides/Foss/lighting_direction.h>
#include <Aspose/Slides/Foss/material_preset_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <Aspose/Slides/Foss/three_d_format.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 150, 150, 300, 130
);
shape.text_frame()->set_text("Metal Button");
// Blue solid fill
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 20, 70, 160));
// 3D bevel + camera + light + material
auto& tdf = shape.three_d_format();
tdf.bevel_top().set_bevel_type(BevelPresetType::CIRCLE);
tdf.bevel_top().set_width(10);
tdf.bevel_top().set_height(5);
tdf.camera().set_camera_type(CameraPresetType::PERSPECTIVE_ABOVE);
tdf.light_rig().set_light_type(LightRigPresetType::BALANCED);
tdf.light_rig().set_direction(LightingDirection::TOP);
tdf.set_material(MaterialPresetType::METAL);
tdf.set_depth(20);
prs.save("metal-button.pptx", SaveFormat::PPTX);
return 0;
}
تأثير مزيج على نفس الشكل
يمكن للظل والتصميم 3D أن يتزامن على شكل واحد ، مما يسمح بتصاميم “البطاقة” المقطوعة:
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/bevel_preset_type.h>
#include <Aspose/Slides/Foss/camera_preset_type.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/material_preset_type.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <Aspose/Slides/Foss/three_d_format.h>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::ROUND_CORNER_RECTANGLE, 120, 120, 360, 150
);
shape.text_frame()->set_text("Premium Card");
// Fill
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 30, 80, 180));
// 3D bevel
auto& tdf = shape.three_d_format();
tdf.bevel_top().set_bevel_type(BevelPresetType::CIRCLE);
tdf.bevel_top().set_width(8);
tdf.camera().set_camera_type(CameraPresetType::PERSPECTIVE_ABOVE);
tdf.set_material(MaterialPresetType::PLASTIC);
// Drop shadow
auto& ef = shape.effect_format();
ef.enable_outer_shadow_effect();
auto* shadow = ef.outer_shadow_effect();
shadow->set_blur_radius(14);
shadow->set_direction(270);
shadow->set_distance(8);
shadow->shadow_color().set_color(Color::from_argb(70, 0, 0, 0));
prs.save("premium-card.pptx", SaveFormat::PPTX);
return 0;
}
التثبيت
include(FetchContent)
FetchContent_Declare(
aspose_slides_foss
GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
target_link_libraries(your_target PRIVATE aspose_slides_foss)
لا تثبيت مكتب، لا مفاتيح الترخيص، ولا مكالمات الشبكة؛ كل المعالجة تحدث محليا.