Képek kezelése a PowerPointban Python segítségével

Bevezetés

A képek a bemutatókat élvezetesebbé és érdekesebbé teszik. A Microsoft PowerPointban képeket szúrhat be egy fájlból, az internetről vagy egyéb forrásokból a diákra. Hasonlóan, az Aspose.Slides többféleképpen is lehetővé teszi a képek diákra történő felvételét.

Az Aspose.Slides támogatja a népszerű formátumú képekkel való munkát, mint a JPEG, PNG, BMP, GIF és egyebek.

Helyi tárolt képek hozzáadása diákhoz

Egy vagy több képet adhat hozzá a számítógépéről egy bemutató diájához. Az alábbi Python példában látható, hogyan adhat hozzá egy képet a diához:

import aspose.slides as slides

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    with open("image.jpeg", "rb") as image_stream:
        image = presentation.images.add_image(image_stream)
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    presentation.save("presentation_with_image.pptx", slides.export.SaveFormat.PPTX)

Képek webes forrásból való diákra való felvétele

Ha a diára felvenni kívánt kép nem érhető el a számítógépén, közvetlenül a webről szúrhatja be.

Az alábbi Python példa bemutatja, hogyan adhat hozzá egy képet egy URL-ről a diához:

import aspose.slides as slides
import urllib2
import base64

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    image_data = base64.b64encode(urllib2.urlopen("[REPLACE WITH URL]").read())

    image = presentation.images.add_image(image_data)
    slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)
    
    presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)

Képek hozzáadása diamesterhez

A diamester a legfelső szintű dia, amely tárolja és irányítja az információkat — téma, elrendezés stb. — az alatta lévő összes dia számára. Ha képet ad hozzá egy diamasterhez, az a kép minden olyan dián megjelenik, amely azt a mastert használja.

Az alábbi Python példa megmutatja, hogyan adhat hozzá egy képet egy diamasterhez:

import aspose.slides as slides

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    master_slide = slide.layout_slide.master_slide

    with open("image.jpeg", "rb") as image_stream:
        image = presentation.images.add_image(image_stream)
        master_slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    presentation.save("master_with_image.pptx", slides.export.SaveFormat.PPTX)

Kép beállítása dia háttérként

Előfordulhat, hogy egy képet szeretne használni egy adott dia vagy több dia háttérként. Részletekért lásd a Set an Image as the Background for a Slide oldalt.

SVG hozzáadása bemutatókhoz

Bármilyen képet beilleszthet egy bemutatóba a add_picture_frame metódus segítségével a ShapeCollection osztályban.

SVG-ből képtárgy létrehozásához kövesse ezeket a lépéseket:

  1. Hozzon létre egy SvgImage objektumot, és adja hozzá a bemutató képgyűjteményéhez.
  2. Hozzon létre egy PPImage objektumot a SvgImage alapján.
  3. Hozzon létre egy PictureFrame objektumot a PPImage felhasználásával.

Az alábbi Python példa bemutatja, hogyan adhat hozzá egy SVG képet egy bemutatóhoz ezekkel a lépésekkel:

import aspose.slides as slides

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    # Olvassa be egy SVG fájl tartalmát.
    with open("sample.svg", "rt") as image_stream:
        svg_content = image_stream.read()
        # Hozzon létre egy SvgImage objektumot.
        svg_image = slides.SvgImage(svg_content)

        # Hozzon létre egy PPImage objektumot.
        pp_image = presentation.images.add_image(svg_image)

        # Hozzon létre egy új PictureFrame-et.
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 200, 100, pp_image.width, pp_image.height, pp_image)

        # Mentse a bemutatót PPTX formátumban.
        presentation.save("presentation_with_SVG.pptx", slides.export.SaveFormat.PPTX)

SVG konvertálása alakzatok halmazává

Az Aspose.Slides a SVG-ket alakzatok halmazává konvertálja, hasonló módon, mint a PowerPoint SVG-kezelése.

PowerPoint Popup Menu

Ezt a funkciót az add_group_shape metódus egy túlterhelt változata biztosítja a ShapeCollection osztályban, amely első argumentumként egy SvgImage objektumot vár.

Az alábbi minta kód megmutatja, hogyan konvertálhat egy SVG fájlt alakzatok halmazává.

import aspose.slides as slides

with slides.Presentation() as presentation:
    # Olvassa be az SVG fájl tartalmát.
    with open("sample.svg","rt") as image_stream:
        svg_content = image_stream.read()
        # Hozzon létre egy SvgImage objektumot.
        svg_image = slides.SvgImage(svg_content)

        # Szerezze meg a diák méretét.
        slide_size = presentation.slide_size.size

        # Konvertálja az SVG képet alakzatcsoporttá és méretezze a diák méretére.
        presentation.slides[0].shapes.add_group_shape(svg_image, 0, 0, slide_size.width, slide_size.height)

        # Mentse a bemutatót PPTX formátumban.
        presentation.save("shapes_from_SVG.pptx", slides.export.SaveFormat.PPTX)

Képek EMF-ként való hozzáadása diákhoz

Az Aspose.Slides for Python lehetővé teszi, hogy Enhanced Metafile (EMF) képeket illesszen be a bemutatókba.

Az alábbi Python példa bemutatja ezt:

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    with open("image.emf", "rb") as image_stream:
        emf_image = presentation.images.add_image(image_stream)
        slide_size = presentation.slide_size.size
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 0, 0, slide_size.width, slide_size.height, emf_image)
    
    presentation.save("presentation_with_EMF.pptx", slides.export.SaveFormat.PPTX)

Képek cseréje a képgyűjteményben

Az Aspose.Slides lehetővé teszi a bemutató képgyűjteményében tárolt képek cseréjét, beleértve a dia alakzatok által használtakat is. Ez a szakasz több megközelítést ismertet a gyűjteményben lévő képek frissítésére. Az API egyszerű módszereket kínál egy kép helyettesítésére nyers bájt adatokkal, egy IImage példánnyal vagy egy már meglévő képpel a gyűjteményben.

Kövesse ezeket a lépéseket:

  1. Töltse be a képeket tartalmazó bemutatót a Presentation osztály segítségével.
  2. Töltsön be egy új képet egy fájlból bájt tömbbe.
  3. Cserélje le a célképet az új képre a bájt tömb használatával.
  4. Alternatívaként töltse be a képet egy IImage objektumba, és cserélje le a célképet ezzel az objektummal.
  5. Vagy cserélje le a célképet a bemutató képgyűjteményében már létező képre.
  6. Mentse a módosított bemutatót PPTX fájlként.
def read_all_bytes(file_name):
    with open(file_name, "rb") as stream:
        return stream.read()


# Példányosítsa a Presentation osztályt, amely egy bemutató fájlt képvisel.
with slides.Presentation("sample.pptx") as presentation:

    # Az első mód.
    image_data = read_all_bytes("image0.jpeg")
    old_image = presentation.images[0]
    old_image.replace_image(image_data)

    # A második mód.
    new_image = slides.Images.from_file("image1.jpeg")
    old_image = presentation.images[1]
    old_image.replace_image(new_image)

    # A harmadik mód.
    old_image = presentation.images[2]
    old_image.replace_image(presentation.images[3])

    # Mentse a bemutatót egy fájlba.
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

GYIK

Megmarad-e az eredeti képfelbontás a beszúrás után?
Igen. A forráspixelok megmaradnak, de a végső megjelenés attól függ, hogyan van a picture méretezve a dián, és a mentéskor alkalmazott tömörítéstől.

Mi a legjobb módja annak, hogy egyszerre több tucat dián cseréljük le ugyanazt a logót?
Helyezze el a logót a master diához vagy egy elrendezéshez, és cserélje ki a bemutató képgyűjteményében — a frissítések minden, az adott erőforrást használó elemre kiterjednek.

Átalakítható-e a beszúrt SVG szerkeszthető alakzatokká?
Igen. Az SVG-t konvertálhatja alakzatcsoporttá, amely után az egyes részek szerkeszthetővé válnak a szabványos alakzat tulajdonságokkal.

Hogyan állíthatok be egy képet egyszerre több dia háttérként?
Állítsa be a képet háttérként a master dián vagy a megfelelő elrendezésen — minden, az adott mastert/elrendezést használó dia örökli a hátteret.

Hogyan akadályozhatom meg, hogy a bemutató nagyméretűvé “felrobbanjon” sok kép miatt?
Használjon egyetlen képernyőforrást a másolatok helyett, válasszon megfelelő felbontást, alkalmazzon tömörítést mentéskor, és ismétlődő grafikákat a masteren tartsa, ahol indokolt.