כיצד להוסיף תמונות לשקופיות PowerPoint ב-Python
תמונות ב‑Aspose.Slides FOSS משולבות כמסגרות תמונה, צורות שמחזיקות תמונה וניתן למקם, לשנות גודל ולעצב אותן כמו כל צורה אחרת. נתוני התמונה נשמרים פעם אחת באוסף prs.images ומופנים על‑ידי המסגרת.
דרישות קדם
pip install aspose-slides-fossהוסף תמונה מקובץ
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:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameכל הממדים הם בנקודות (1 נקודה = 1/72 אינץ’). עבור שקופית סטנדרטית בגודל 13.33 × 7.5 אינץ’ מרחב הקואורדינטות הוא 960 × 540 נקודות.
הוסף תמונה מבייטים
אם כבר יש לך את התמונה בתור בתים (למשל, הורדה מ‑URL או קריאה ממסד נתונים):
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)שלוט במצב המילוי
הpicture_fill_format על PictureFrame שולט איך התמונה ממלאת את גבולות המסגרת:
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 | התנהגות |
|---|---|
STRETCH | התאם את גודל התמונה למלא את המסגרת, בהתעלמות ממקדם היחס |
TILE | חזור על התמונה כתבנית מרוצפת |
TILE_FLIP | רצף עם הפיכות אופקיות ואנכיות מתחלפות |
הוסף תמונות מרובות לשקופיות שונות
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)ספירת תמונות במצגת קיימת
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 משותף לכל השקופיות: בתים של התמונה נשמרים פעם אחת בלבד גם אם מסגרת התמונה מופיעה בכמה שקופיות.