Optimiser la gestion des images dans les présentations avec Java
Images dans les diapositives de présentation
Les images rendent les présentations plus attrayantes et intéressantes. Dans Microsoft PowerPoint, vous pouvez insérer des images depuis un fichier, Internet ou d’autres emplacements sur les diapositives. De même, Aspose.Slides vous permet d’ajouter des images aux diapositives de vos présentations via différentes méthodes.
Tip
Aspose propose des convertisseurs gratuits—JPEG vers PowerPoint et PNG vers PowerPoint—qui permettent de créer rapidement des présentations à partir d’images.Info
Si vous souhaitez ajouter une image en tant qu’objet cadre—en particulier si vous prévoyez d’utiliser les options de formatage standard pour changer sa taille, ajouter des effets, etc.—voir Cadre d’image.Note
Vous pouvez manipuler les opérations d’entrée/sortie impliquant des images et des présentations PowerPoint pour convertir une image d’un format à un autre. Consultez ces pages : convertir image en JPG; convertir JPG en image; convertir JPG en PNG, convertir PNG en JPG; convertir PNG en SVG, convertir SVG en PNG.Aspose.Slides prend en charge les opérations avec les images dans ces formats populaires : JPEG, PNG, GIF, et d’autres.
Ajouter des images stockées localement aux diapositives
Vous pouvez ajouter une ou plusieurs images depuis votre ordinateur à une diapositive d’une présentation. Ce code d’exemple en Java montre comment ajouter une image à une diapositive :
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ajouter des images depuis le Web aux diapositives
Si l’image que vous voulez ajouter à une diapositive n’est pas disponible sur votre ordinateur, vous pouvez l’ajouter directement depuis le Web.
Ce code d’exemple montre comment ajouter une image depuis le Web à une diapositive en Java :
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
URL imageUrl = new URL("[REPLACE WITH URL]");
URLConnection connection = imageUrl.openConnection();
InputStream inputStream = connection.getInputStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
byte[] buffer = new byte[1024];
int read;
while ((read = inputStream.read(buffer, 0, buffer.length)) != -1)
outputStream.write(buffer, 0, read);
outputStream.flush();
IPPImage image = pres.getImages().addImage(outputStream.toByteArray());
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, image);
} finally {
if (inputStream != null) inputStream.close();
outputStream.close();
}
pres.save("pres.pptx", SaveFormat.Pptx);
} catch(IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Ajouter des images aux maîtres de diapositives
Un maître de diapositive est la diapositive principale qui stocke et contrôle les informations (thème, mise en page, etc.) de toutes les diapositives qui lui sont subordonnées. Ainsi, lorsque vous ajoutez une image à un maître de diapositive, cette image apparaît sur chaque diapositive dépendante de ce maître.
Ce code d’exemple en Java montre comment ajouter une image à un maître de diapositive :
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IMasterSlide masterSlide = slide.getLayoutSlide().getMasterSlide();
IPPImage picture;
IImage image = Images.fromFile("image.png");
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
masterSlide.getShapes().addPictureFrame(ShapeType.Rectangle, 10, 10, 100, 100, picture);
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ajouter des images comme arrière‑plans de diapositives
Vous pouvez choisir d’utiliser une image comme arrière‑plan d’une diapositive spécifique ou de plusieurs diapositives. Dans ce cas, consultez Définir des images comme arrière‑plan pour les diapositives.
Ajouter du SVG aux présentations
Vous pouvez ajouter ou insérer n’importe quelle image dans une présentation en utilisant la méthode addPictureFrame appartenant à l’interface IShapeCollection.
Pour créer un objet image à partir d’une image SVG, procédez comme suit :
- Créez un objet SvgImage à insérer dans ImageShapeCollection
- Créez un objet PPImage à partir de ISvgImage
- Créez un objet PictureFrame en utilisant l’interface IPPImage
Ce code d’exemple montre comment mettre en œuvre les étapes ci‑dessus pour ajouter une image SVG à une présentation :
// Instanciez la classe Presentation qui représente le fichier PPTX
Presentation pres = new Presentation();
try {
String svgContent = new String(Files.readAllBytes(Paths.get("image.svg")));
ISvgImage svgImage = new SvgImage(svgContent);
IPPImage ppImage = pres.getImages().addImage(svgImage);
pres.getSlides().get_Item(0).getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0,
ppImage.getWidth(), ppImage.getHeight(), ppImage);
pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Convertir du SVG en ensemble de formes
La conversion du SVG en ensemble de formes d’Aspose.Slides est similaire à la fonctionnalité PowerPoint permettant de travailler avec des images SVG :

Cette fonctionnalité est fournie par l’une des surcharges de la méthode addGroupShape de l’interface IShapeCollection qui accepte en premier argument un objet ISvgImage.
Ce code d’exemple montre comment utiliser la méthode décrite pour convertir un fichier SVG en ensemble de formes :
// Créez une nouvelle présentation
IPresentation presentation = new Presentation();
try {
// Lire le contenu du fichier SVG
byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));
// Créer l'objet SvgImage
ISvgImage svgImage = new SvgImage(svgContent);
// Obtenir la taille de la diapositive
Dimension2D slideSize = presentation.getSlideSize().getSize();
// Convertir l'image SVG en groupe de formes en l'adaptant à la taille de la diapositive
presentation.getSlides().get_Item(0).getShapes().
addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());
// Enregistrer la présentation au format PPTX
presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Ajouter des images au format EMF aux diapositives
Aspose.Slides for Java vous permet de générer des images EMF à partir de feuilles Excel et d’ajouter ces images en tant qu’EMF dans les diapositives avec Aspose.Cells.
Ce code d’exemple montre comment réaliser la tâche décrite :
Workbook book = new Workbook("chart.xlsx");
Worksheet sheet = book.getWorksheets().get(0);
ImageOrPrintOptions options = new ImageOrPrintOptions();
options.setHorizontalResolution(200);
options.setVerticalResolution(200);
options.setImageType(ImageType.EMF);
//Enregistrer le classeur dans le flux
SheetRender sr = new SheetRender(sheet, options);
Presentation pres = new Presentation();
try {
pres.getSlides().removeAt(0);
String EmfSheetName = "";
for (int j = 0; j < sr.getPageCount(); j++)
{
EmfSheetName = "test" + sheet.getName() + " Page" + (j + 1) + ".out.emf";
sr.toImage(j, EmfSheetName);
IPPImage picture;
IImage image = Images.fromFile(EmfSheetName);
try {
picture = pres.getImages().addImage(image);
} finally {
if (image != null) image.dispose();
}
ISlide slide = pres.getSlides().addEmptySlide(pres.getLayoutSlides().getByType(SlideLayoutType.Blank));
IShape m = slide.getShapes().addPictureFrame(ShapeType.Rectangle, 0, 0,
(float)pres.getSlideSize().getSize().getWidth(),
(float)pres.getSlideSize().getSize().getHeight(),
picture);
}
pres.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (pres != null) pres.dispose();
}
Remplacer des images dans la collection d’images
Aspose.Slides vous permet de remplacer les images stockées dans la collection d’images d’une présentation (y compris celles utilisées par les formes de diapositive). Cette section présente plusieurs approches pour mettre à jour les images de la collection. L’API fournit des méthodes simples pour remplacer une image à l’aide de données brutes, d’une instance IImage, ou d’une autre image déjà présente dans la collection.
Suivez les étapes ci‑dessous :
- Chargez le fichier de présentation contenant des images à l’aide de la classe Presentation.
- Chargez une nouvelle image depuis un fichier dans un tableau d’octets.
- Remplacez l’image cible par la nouvelle image en utilisant le tableau d’octets.
- Dans la deuxième approche, chargez l’image dans un objet IImage et remplacez l’image cible par cet objet.
- Dans la troisième approche, remplacez l’image cible par une image déjà présente dans la collection d’images de la présentation.
- Enregistrez la présentation modifiée sous forme de fichier PPTX.
// Instanciez la classe Presentation qui représente un fichier de présentation.
Presentation presentation = new Presentation("sample.pptx");
try {
// La première méthode.
byte[] imageData = Files.readAllBytes(Paths.get("image0.jpeg"));
IPPImage oldImage = presentation.getImages().get_Item(0);
oldImage.replaceImage(imageData);
// La deuxième méthode.
IImage newImage = Images.fromFile("image1.png");
oldImage = presentation.getImages().get_Item(1);
oldImage.replaceImage(newImage);
newImage.dispose();
// La troisième méthode.
oldImage = presentation.getImages().get_Item(2);
oldImage.replaceImage(presentation.getImages().get_Item(3));
// Enregistrez la présentation dans un fichier.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Info
En utilisant le convertisseur GRATUIT Aspose Text to GIF, vous pouvez facilement animer du texte, créer des GIF à partir de texte, etc.FAQ
La résolution d’origine de l’image reste‑t‑elle intacte après l’insertion ?
Oui. Les pixels source sont conservés, mais l’apparence finale dépend de la façon dont le picture est redimensionné sur la diapositive et de toute compression appliquée lors de l’enregistrement.
Quelle est la meilleure façon de remplacer le même logo sur des dizaines de diapositives en une fois ?
Placez le logo sur le maître de diapositive ou sur une mise en page et remplacez‑le dans la collection d’images de la présentation — les modifications se propageront à tous les éléments qui utilisent cette ressource.
Une image SVG insérée peut‑elle être convertie en formes modifiables ?
Oui. Vous pouvez convertir un SVG en groupe de formes, après quoi chaque partie devient éditable avec les propriétés de forme standard.
Comment définir une image comme arrière‑plan de plusieurs diapositives à la fois ?
Attribuez l’image comme arrière‑plan sur le maître de diapositive ou la mise en page correspondante — toutes les diapositives utilisant ce maître/mise en page hériteront de l’arrière‑plan.
Comment empêcher la présentation de « gonfler » en taille à cause de nombreuses images ?
Réutilisez une même ressource d’image au lieu de duplication, choisissez des résolutions raisonnables, appliquez une compression lors de l’enregistrement, et conservez les graphiques répétés sur le maître lorsque c’est approprié.