Práca s obrázkami v prezentáciách — Aspose.Slides FOSS pre Python

Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame tvary. Obrázky je možné tiež použiť ako výplň pozadia tvaru prostredníctvom FillType.PICTURE.


Pridanie obrázka zo súboru

Načítajte bajty obrázka z disku a pridajte ich do kolekcie obrázkov prezentácie pomocou prs.images.add_image(). Potom umiestnite obrázok na snímku ako PictureFrame:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    # Add the image to the shared collection
    with open("logo.png", "rb") as f:
        img = prs.images.add_image(f.read())

    # Place it on the slide as a PictureFrame
    slide = prs.slides[0]
    slide.shapes.add_picture_frame(ShapeType.RECTANGLE, 50, 50, 300, 200, img)

    prs.save("with-image.pptx", SaveFormat.PPTX)

Štyri pozičné argumenty pre add_picture_frame() sú: x, y, width, height v bodoch.


Pridanie obrázka z bajtov

Ak už máte bajty obrázka (napr. stiahnuté z URL alebo načítané z databázy), odovzdajte ich priamo do add_image():

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

# Simulate having bytes in memory
with open("photo.jpg", "rb") as f:
    image_bytes = f.read()

with slides.Presentation() as prs:
    img = prs.images.add_image(image_bytes)
    prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 100, 80, 400, 250, img)
    prs.save("from-bytes.pptx", SaveFormat.PPTX)

Umietnenie a veľkosť PictureFrame

Metóda PictureFrame vrátený add_picture_frame() zdedí všetky Shape geometrické vlastnosti a môže byť po vytvorení presunutý:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("photo.jpg", "rb") as f:
        img = prs.images.add_image(f.read())

    pf = prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 0, 0, 100, 100, img)

    # Reposition and resize after creation
    pf.x = 50
    pf.y = 100
    pf.width = 350
    pf.height = 250

    prs.save("positioned.pptx", SaveFormat.PPTX)

Použitie obrázka ako výplň tvaru

Akýkoľvek tvar (nielen PictureFrame) môže použiť obrázok ako výplň pozadia. Nastavte fill_type = FillType.PICTURE a priraďte obrázok k picture_fill_format.picture.image:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType, FillType, PictureFillMode
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("background.png", "rb") as f:
        img = prs.images.add_image(f.read())

    slide = prs.slides[0]
    shape = slide.shapes.add_auto_shape(ShapeType.ROUND_CORNER_RECTANGLE, 50, 50, 400, 250)
    shape.fill_format.fill_type = FillType.PICTURE
    shape.fill_format.picture_fill_format.picture_fill_mode = PictureFillMode.STRETCH
    shape.fill_format.picture_fill_format.picture.image = img

    prs.save("picture-fill.pptx", SaveFormat.PPTX)

PictureFillMode.STRETCH zmení veľkosť obrázka tak, aby vyplnil celý tvar. Použite TILE pre opakujúci sa dlaždicový vzor.


Pridávanie viacerých obrázkov naprieč snímkami

Obrázky pridané do prs.images sú zdieľané na všetkých snímkach. Rovnaké Image objekt môže byť použitý na viacerých snímkach bez duplikovania údajov:

import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat

with slides.Presentation() as prs:
    with open("logo.png", "rb") as f:
        logo = prs.images.add_image(f.read())

    # Add the same image to both slides
    prs.slides[0].shapes.add_picture_frame(ShapeType.RECTANGLE, 600, 10, 100, 40, logo)

    prs.save("shared-image.pptx", SaveFormat.PPTX)

Pozri tiež

 Slovenčina