Cách Thêm Hình Ảnh vào Các Slide PowerPoint trong Python
Hình ảnh trong Aspose.Slides FOSS được nhúng dưới dạng khung hình, các hình dạng chứa hình ảnh và có thể được định vị, thay đổi kích thước và tạo kiểu như bất kỳ hình dạng nào khác. Dữ liệu hình ảnh được lưu trữ một lần trong bộ sưu tập prs.images và được tham chiếu bởi khung.
Điều kiện tiên quyết
pip install aspose-slides-fossThêm hình ảnh từ tệp
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)Chữ ký add_picture_frame:
add_picture_frame(shape_type, x, y, width, height, image) → PictureFrameTất cả các kích thước đều tính bằng points (1 point = 1/72 inch). Đối với một slide tiêu chuẩn kích thước 13.33 × 7.5 inch, không gian tọa độ là 960 × 540 points.
Thêm một hình ảnh từ byte
Nếu bạn đã có hình ảnh dưới dạng byte (ví dụ: tải xuống từ URL hoặc đọc từ cơ sở dữ liệu):
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)Kiểm soát chế độ lấp đầy
picture_fill_format trên một PictureFrame kiểm soát cách hình ảnh lấp đầy giới hạn khung:
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 | Hành vi |
|---|---|
STRETCH | Phóng to hình ảnh để lấp đầy khung, bỏ qua tỷ lệ khung hình |
TILE | Lặp lại hình ảnh dưới dạng mẫu ghép ô |
TILE_FLIP | Ghép ô với việc lật ngang/dọc xen kẽ |
Thêm Nhiều Hình Ảnh vào Các Slide Khác Nhau
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)Đếm hình ảnh trong một bản trình bày hiện có
import aspose.slides_foss as slides
with slides.Presentation("with-image.pptx") as prs:
print(f"Presentation contains {len(prs.images)} image(s)")Bộ sưu tập prs.images được chia sẻ trên tất cả các slide: các byte hình ảnh giống nhau chỉ được lưu một lần ngay cả khi khung ảnh xuất hiện trên nhiều slide.