Arbeiten mit Bildern in Präsentationen — Aspose.Slides FOSS für Python
Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame Formen. Bilder können auch als Hintergrundfüllungen für Formen verwendet werden über FillType.PICTURE.
Hinzufügen eines Bildes aus einer Datei
Laden Sie Bildbytes von der Festplatte und fügen Sie sie der Bildsammlung der Präsentation hinzu mit prs.images.add_image(). Platzieren Sie dann das Bild auf einer Folie als ein 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)Die vier Positionsargumente für add_picture_frame() sind: x, y, width, height in Punkten.
Hinzufügen eines Bildes aus Bytes
Wenn Sie bereits Bildbytes haben (z. B. von einer URL heruntergeladen oder aus einer Datenbank gelesen), übergeben Sie sie direkt an 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)Positionieren und Skalieren eines PictureFrame
Der PictureFrame zurückgegeben von add_picture_frame() erbt alle Shape Geometrieeigenschaften und kann nach der Erstellung neu positioniert werden:
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)Verwenden eines Bildes als Formfüllung
Jede Form (nicht nur PictureFrame) kann ein Bild als Hintergrundfüllung verwenden. Set fill_type = FillType.PICTURE und weisen Sie das Bild zu 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 skaliert das Bild, um die gesamte Form auszufüllen. Use TILE für ein wiederholendes Kachelmuster.
Hinzufügen mehrerer Bilder über Folien hinweg
Bilder, die zu prs.images werden über alle Folien hinweg geteilt. Das gleiche Image Objekt kann auf mehreren Folien verwendet werden, ohne die Daten zu duplizieren:
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)