3D Efektler ve Görsel Efektlerle Çalışma — Aspose.Slides FOSS for C++
Aspose.Slides FOSS for C++ her şekil üzerinde erişilebilen iki ayrı efekt sistemini sağlar:
EffectFormat(shape.effect_format()): 2D görsel efektler: gölge, parıltı, yumuşak kenar, bulanıklık, yansımaThreeDFormat(shape.three_d_format()): 3D görünüm: köşe, kamera projeksiyonu, ışık düzeni, malzeme, ekstrüzyon derinliği
İkisi de kaydetme/yeniden yükleme döngülerinde kalıcıdır.
Görsel Efektler (EffectFormat)
Dış Gölge
#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/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 pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 300, 120);
shape.text_frame()->set_text("Shadowed Text");
auto& ef = shape.effect_format();
ef.enable_outer_shadow_effect();
auto* shadow = ef.outer_shadow_effect();
shadow->set_blur_radius(10); // softness in points
shadow->set_direction(315); // angle: 315 = upper-left cast
shadow->set_distance(8); // offset in points
shadow->shadow_color().set_color(Color::from_argb(128, 0, 0, 0)); // semi-transparent black
pres.save("shadow.pptx", SaveFormat::PPTX);
return 0;
}Ortak direction değerleri: 0 = sağ, 45 = sağ-alt, 90 = aşağı, 270 = yukarı, 315 = sol-üst.
Parıltı Efekti
#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/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 pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::ELLIPSE, 150, 100, 200, 200);
auto& ef = shape.effect_format();
ef.enable_glow_effect();
auto* glow = ef.glow_effect();
glow->set_radius(15);
glow->color().set_color(Color::gold);
pres.save("glow.pptx", SaveFormat::PPTX);
return 0;
}Yumuşak Kenar (Tüylenmiş Kenar)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.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;
int main() {
Presentation pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 350, 180);
auto& ef = shape.effect_format();
ef.enable_soft_edge_effect();
auto* se = ef.soft_edge_effect();
se->set_radius(12); // feather radius in points
pres.save("soft-edge.pptx", SaveFormat::PPTX);
return 0;
}Bulanıklık
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.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;
int main() {
Presentation pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 100, 100, 350, 180);
shape.effect_format().set_blur_effect(8, true);
pres.save("blur.pptx", SaveFormat::PPTX);
return 0;
}3D Biçimlendirme (ThreeDFormat)
Köşe Etkisi
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/bevel_preset_type.h>
#include <Aspose/Slides/Foss/export/save_format.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;
int main() {
Presentation pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 150, 150, 250, 120);
shape.text_frame()->set_text("3D Button");
auto& tdf = shape.three_d_format();
tdf.bevel_top().set_bevel_type(BevelPresetType::CIRCLE);
tdf.bevel_top().set_width(12);
tdf.bevel_top().set_height(6);
pres.save("bevel.pptx", SaveFormat::PPTX);
return 0;
}BevelPresetType değerleri: CIRCLE, RELAXED_INSET, COOL_SLANT, DIVOT, RIBLET, HARD_EDGE, SLOPE, CONVEX
Kamera Ön Ayarı
#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/export/save_format.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/three_d_format.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 150, 150, 250, 120);
auto& tdf = shape.three_d_format();
tdf.bevel_top().set_bevel_type(BevelPresetType::CIRCLE);
tdf.bevel_top().set_width(10);
tdf.camera().set_camera_type(CameraPresetType::PERSPECTIVE_ABOVE);
pres.save("camera.pptx", SaveFormat::PPTX);
return 0;
}Light Rig ve Malzeme
#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/export/save_format.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;
int main() {
Presentation pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 150, 150, 250, 120);
shape.text_frame()->set_text("Metal Button");
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);
pres.save("3d-metal.pptx", SaveFormat::PPTX);
return 0;
}MaterialPresetType değerleri: STANDARD, WARM, COOL, PLASTIC, METAL, MATTE, WIREFRAME
2D ve 3D Efektleri Birleştirme
Aynı şekle hem effect_format() hem de three_d_format() uygulayabilirsiniz:
#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 pres;
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::ROUND_CORNER_RECTANGLE, 150, 150, 300, 120);
shape.text_frame()->set_text("Premium Card");
// 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));
// 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(12);
shadow->set_direction(270);
shadow->set_distance(6);
shadow->shadow_color().set_color(Color::from_argb(80, 0, 0, 0));
pres.save("premium-card.pptx", SaveFormat::PPTX);
return 0;
}