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, без лицензни ключове, без мрежови заявки; цялата обработка се извършва локално.


Свързани ресурси