Práce s obrázky v prezentacích — Aspose.Slides FOSS pro 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 lze také použít jako výplně pozadí tvarů pomocí FillType.PICTURE.


Přidání obrázku ze souboru

Načtěte bajty obrázku z disku a přidejte je do kolekce obrázků prezentace pomocí prs.images.add_image(). Pak umístěte obrázek na snímek jako 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)

Čtyři poziční argumenty pro add_picture_frame() jsou: x, y, width, height v bodech.


Přidání obrázku z bajtů

Pokud již máte bajty obrázku (např. stažené z URL nebo načtené z databáze), předávejte je přímo 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)

Umístění a změna velikosti PictureFrame

Objekt PictureFrame vrácený metodou add_picture_frame() dědí všechny Shape geometrické vlastnosti a může být po vytvoření přesunut:

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žití obrázku jako výplně tvaru

Jakýkoli tvar (nejen PictureFrame) může použít obrázek jako výplň pozadí. Nastavte fill_type = FillType.PICTURE a přiřaďte obrázek 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 zvětší obrázek tak, aby vyplnil celý tvar. Použijte TILE pro opakující se dlaždicový vzor.


Přidávání více obrázků napříč snímky

Obrázky přidané do prs.images jsou sdíleny napříč všemi snímky. Stejné Image objekt může být použit na více snímcích bez duplikování dat:

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)

Viz také

 Čeština