Kā pievienot attēlus PowerPoint slaidiem, izmantojot Python
Attēli Aspose.Slides FOSS tiek iegulti kā attēlu rāmji, formas, kas satur attēlu un var tikt novietotas, mainītas izmērā un stilizētas kā jebkura cita forma. Attēlu dati tiek saglabāti vienreiz prs.images kolekcijā un tiek atsaukti uz rāmi.
Priekšnosacījumi
pip install aspose-slides-fossPievienot attēlu no faila
from aspose.slides_foss import ShapeType, PictureFillMode
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# Load image into the presentation's image collection
with open("photo.jpg", "rb") as f:
img = prs.images.add_image(f.read())
# Add a picture frame at (x=50, y=50, width=400, height=300) in points
frame = slide.shapes.add_picture_frame(
ShapeType.RECTANGLE,
50, 50, 400, 300,
img,
)
prs.save("with-image.pptx", SaveFormat.PPTX)add_picture_frame paraksts:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameVisi izmēri ir punktos (1 punkts = 1/72 collas). Standarta 13.33 × 7.5 collas slaidam koordinātu telpa ir 960 × 540 punkti.
Pievienot attēlu no baitiem
Ja jums jau ir attēls kā baitu masīvs (piemēram, lejupielādēts no URL vai nolasīts no datu bāzes):
import aspose.slides_foss as slides
from aspose.slides_foss import ShapeType
from aspose.slides_foss.export import SaveFormat
image_bytes = open("logo.png", "rb").read() # or any bytes source
with slides.Presentation() as prs:
img = prs.images.add_image(image_bytes)
prs.slides[0].shapes.add_picture_frame(
ShapeType.RECTANGLE,
200, 100, 300, 200,
img,
)
prs.save("logo-slide.pptx", SaveFormat.PPTX)Kontrolēt aizpildīšanas režīmu
picture_fill_format uz PictureFrame kontrolē, kā attēls aizpilda kadra robežas:
from aspose.slides_foss import ShapeType, PictureFillMode
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
img = prs.images.add_image(open("texture.png", "rb").read())
frame = prs.slides[0].shapes.add_picture_frame(
ShapeType.RECTANGLE, 50, 50, 600, 350, img
)
# STRETCH: scale image to fill the frame exactly (default)
frame.picture_format.picture_fill_mode = PictureFillMode.STRETCH
# TILE: repeat the image in a grid pattern
# frame.picture_format.picture_fill_mode = PictureFillMode.TILE
prs.save("filled.pptx", SaveFormat.PPTX)PictureFillMode | Uzvedība |
|---|---|
STRETCH | Mērogot attēlu, lai aizpildītu rāmi, ignorējot proporcijas |
TILE | Atkārtot attēlu kā flīzētu rakstu |
TILE_FLIP | Flīzēt ar pārmaiņām horizontālajos/vertikālajos apgriezumos |
Pievienot vairākus attēlus dažādos slaidos
import os
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
image_files = ["slide1.jpg", "slide2.jpg", "slide3.jpg"]
with slides.Presentation() as prs:
layout = prs.slides[0].layout_slide
# Ensure enough slides exist
while len(prs.slides) < len(image_files):
prs.slides.add_empty_slide(layout)
for i, path in enumerate(image_files):
if not os.path.exists(path):
continue
img = prs.images.add_image(open(path, "rb").read())
prs.slides[i].shapes.add_picture_frame(
ShapeType.RECTANGLE, 0, 0, 960, 540, img
)
prs.save("multi-image.pptx", SaveFormat.PPTX)Skaitīt attēlus esošā prezentācijā
import aspose.slides_foss as slides
with slides.Presentation("with-image.pptx") as prs:
print(f"Presentation contains {len(prs.images)} image(s)")prs.images kolekcija tiek koplietota visās slaidos: tas pats attēla baiti tiek saglabāti vienreiz, pat ja attēla rāmis parādās vairākos slaidos.