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)