Image
Contents
[
Hide
]
Cet article montre comment insérer et accéder aux images à partir d’images en mémoire en utilisant Aspose.Slides for Python via Java. Les exemples ci-dessous créent une image en mémoire, la placent sur une diapositive, puis récupèrent le cadre d’image.
Installez le package comme décrit dans Installation. Chaque exemple importe asposeslides avant de démarrer la JVM, puis importe l’API une fois la JVM en cours d’exécution.
Ajouter une image
Ce code génère un petit bitmap, le convertit en flux et l’insère comme cadre d’image sur la première diapositive.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from java.awt import Color
from java.awt.image import BufferedImage
from java.io import ByteArrayInputStream, ByteArrayOutputStream
from javax.imageio import ImageIO
from asposeslides.api import Presentation, SaveFormat, ShapeType
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
# Créer une image simple en mémoire.
bitmap = BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB)
graphics = bitmap.createGraphics()
try:
color = Color(144, 238, 144)
graphics.setPaint(color)
graphics.fillRect(0, 0, 100, 100)
finally:
graphics.dispose()
# Convertir le bitmap en tableau d'octets.
bitmap_stream = ByteArrayOutputStream()
ImageIO.write(bitmap, "png", bitmap_stream)
png_bytes = bitmap_stream.toByteArray()
# Ajouter l'image à la présentation.
image_stream = ByteArrayInputStream(png_bytes)
image = presentation.getImages().addImage(image_stream)
# Insérer un cadre d'image affichant l'image sur la première diapositive.
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 50, 50, bitmap.getWidth(), bitmap.getHeight(), image)
presentation.save("picture.pptx", SaveFormat.Pptx)
finally:
presentation.dispose()
Accéder à une image
Cet exemple vérifie qu’une diapositive contient un cadre d’image, puis accède au premier trouvé.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from java.awt.image import BufferedImage
from java.io import ByteArrayInputStream, ByteArrayOutputStream
from javax.imageio import ImageIO
from asposeslides.api import PictureFrame, Presentation, ShapeType
presentation = Presentation()
try:
slide = presentation.getSlides().get_Item(0)
bitmap = BufferedImage(40, 40, BufferedImage.TYPE_INT_ARGB)
bitmap_stream = ByteArrayOutputStream()
ImageIO.write(bitmap, "png", bitmap_stream)
png_bytes = bitmap_stream.toByteArray()
image_stream = ByteArrayInputStream(png_bytes)
image = presentation.getImages().addImage(image_stream)
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0, 40, 40, image)
picture_frame = None
for shape in slide.getShapes():
if isinstance(shape, PictureFrame):
picture_frame = shape
break
if picture_frame is None:
print("The slide contains no picture frames.")
finally:
presentation.dispose()