การทำงานกับรูปภาพในงานนำเสนอ — Aspose.Slides FOSS สำหรับ Python

Aspose.Slides FOSS for Python lets you embed images in a presentation’s shared image collection and display them on slides using PictureFrame รูปร่าง. ภาพยังสามารถใช้เป็นการเติมพื้นหลังของรูปร่างผ่าน FillType.PICTURE.


การเพิ่มรูปภาพจากไฟล์

โหลดไบต์ของภาพจากดิสก์และเพิ่มลงในคอลเลกชันภาพของงานนำเสนอด้วย prs.images.add_image(). จากนั้นวางภาพบนสไลด์เป็น 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)

อาร์กิวเมนต์ตำแหน่งสี่ตัวที่ส่งให้ add_picture_frame() คือ: x, y, width, height ในหน่วยจุด.


การเพิ่มรูปภาพจากไบต์

หากคุณมีไบต์ของภาพอยู่แล้ว (เช่น ดาวน์โหลดจาก URL หรืออ่านจากฐานข้อมูล) ให้ส่งต่อโดยตรงไปยัง 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)

การกำหนดตำแหน่งและขนาดของ PictureFrame

ตัว PictureFrame ที่ส่งกลับมาจาก add_picture_frame() สืบทอดคุณสมบัติทั้งหมด Shape ของเรขาคณิตและสามารถย้ายตำแหน่งใหม่หลังจากสร้างแล้ว:

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)

การใช้รูปภาพเป็นการเติมรูปทรง

รูปร่างใดก็ได้ (ไม่ใช่แค่ PictureFrame) สามารถใช้ภาพเป็นการเติมพื้นหลังได้ ตั้งค่า fill_type = FillType.PICTURE และกำหนดภาพให้กับ 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 ปรับขนาดภาพให้เติมเต็มรูปร่างทั้งหมด ใช้ TILE สำหรับลายกระเบื้องที่ทำซ้ำ.


การเพิ่มรูปภาพหลายรูปบนหลายสไลด์

ภาพที่เพิ่มเข้าไปใน prs.images ถูกแชร์ในทุกสไลด์ทั้งหมด. เดียวกัน Image วัตถุสามารถใช้ได้บนหลายสไลด์โดยไม่ต้องทำซ้ำข้อมูล:

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)

ดูเพิ่มเติม

 ภาษาไทย