Aspose.Slides FOSS for Python lets you apply professional-quality visual effects to PowerPoint shapes entirely in Python, 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.
Плътно запълване
Най‑простото запълване, плосък цвят с опционална прозрачност:
from aspose.slides_foss import ShapeType, FillType
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.ROUND_CORNER_RECTANGLE, 100, 100, 400, 150
)
shape.add_text_frame("Solid Fill")
shape.fill_format.fill_type = FillType.SOLID
shape.fill_format.solid_fill_color.color = Color.from_argb(255, 30, 80, 180)
prs.save("solid.pptx", SaveFormat.PPTX)
Линейно градиентно запълване
Точките на градиент позволяват да смесвате от един цвят към друг по цялата форма:
from aspose.slides_foss import ShapeType, FillType, GradientShape
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.RECTANGLE, 100, 100, 400, 150
)
ff = shape.fill_format
ff.fill_type = FillType.GRADIENT
gf = ff.gradient_format
gf.gradient_shape = GradientShape.LINEAR
gf.linear_gradient_angle = 90 # top-to-bottom
gf.gradient_stops.add(0.0, Color.from_argb(255, 30, 80, 180)) # top: blue
gf.gradient_stops.add(1.0, Color.from_argb(255, 0, 200, 160)) # bottom: teal
prs.save("gradient.pptx", SaveFormat.PPTX)
2D Visual Effects
Външна падаща сянка
Прикрепете полупрозрачна падаща сянка към всяка форма:
from aspose.slides_foss import ShapeType, FillType
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.ROUND_CORNER_RECTANGLE, 100, 100, 350, 150
)
shape.add_text_frame("Drop Shadow")
shape.fill_format.fill_type = FillType.SOLID
shape.fill_format.solid_fill_color.color = Color.white
ef = shape.effect_format
ef.enable_outer_shadow_effect()
ef.outer_shadow_effect.blur_radius = 12
ef.outer_shadow_effect.direction = 315 # upper-left
ef.outer_shadow_effect.distance = 8
ef.outer_shadow_effect.shadow_color.color = Color.from_argb(100, 0, 0, 0)
prs.save("shadow.pptx", SaveFormat.PPTX)
Ефект на сияние
Оцветена халка около ръба на формата:
from aspose.slides_foss import ShapeType, FillType
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.ELLIPSE, 150, 100, 250, 250
)
shape.fill_format.fill_type = FillType.SOLID
shape.fill_format.solid_fill_color.color = Color.from_argb(255, 20, 60, 140)
ef = shape.effect_format
ef.enable_glow_effect()
ef.glow_effect.radius = 20
ef.glow_effect.color.color = Color.from_argb(200, 0, 180, 255)
prs.save("glow.pptx", SaveFormat.PPTX)
3D Formatting
Фаска и Материал
Това three_d_format свойството придава на всяка плоска форма триизмерен вид. Комбинирайте фаска с предварително зададено камера и материал за най-богатия резултат:
from aspose.slides_foss import (
ShapeType, FillType,
BevelPresetType, CameraPresetType,
LightRigPresetType, LightingDirection,
MaterialPresetType,
)
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.RECTANGLE, 150, 150, 300, 130
)
shape.add_text_frame("Metal Button")
# Blue solid fill
shape.fill_format.fill_type = FillType.SOLID
shape.fill_format.solid_fill_color.color = Color.from_argb(255, 20, 70, 160)
# 3D bevel + camera + light + material
tdf = shape.three_d_format
tdf.bevel_top.bevel_type = BevelPresetType.CIRCLE
tdf.bevel_top.width = 10
tdf.bevel_top.height = 5
tdf.camera.camera_type = CameraPresetType.PERSPECTIVE_ABOVE
tdf.light_rig.light_type = LightRigPresetType.BALANCED
tdf.light_rig.direction = LightingDirection.TOP
tdf.material = MaterialPresetType.METAL
tdf.depth = 20
prs.save("metal-button.pptx", SaveFormat.PPTX)
Комбиниране на ефекти върху една и съща форма
Сянка и 3D форматиране могат да съществуват едновременно върху една форма, позволявайки полирани „card“ дизайни:
from aspose.slides_foss import (
ShapeType, FillType,
BevelPresetType, CameraPresetType, MaterialPresetType,
)
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
shape = prs.slides[0].shapes.add_auto_shape(
ShapeType.ROUND_CORNER_RECTANGLE, 120, 120, 360, 150
)
shape.add_text_frame("Premium Card")
# Fill
shape.fill_format.fill_type = FillType.SOLID
shape.fill_format.solid_fill_color.color = Color.from_argb(255, 30, 80, 180)
# 3D bevel
tdf = shape.three_d_format
tdf.bevel_top.bevel_type = BevelPresetType.CIRCLE
tdf.bevel_top.width = 8
tdf.camera.camera_type = CameraPresetType.PERSPECTIVE_ABOVE
tdf.material = MaterialPresetType.PLASTIC
# Drop shadow
ef = shape.effect_format
ef.enable_outer_shadow_effect()
ef.outer_shadow_effect.blur_radius = 14
ef.outer_shadow_effect.direction = 270
ef.outer_shadow_effect.distance = 8
ef.outer_shadow_effect.shadow_color.color = Color.from_argb(70, 0, 0, 0)
prs.save("premium-card.pptx", SaveFormat.PPTX)
Инсталация
pip install aspose-slides-foss
Без инсталация на Office, без лицензни ключове, без мрежови заявки; цялата обработка се извършва локално.