Optimieren Sie das Bildmanagement in Präsentationen mit Java
Bilder in Präsentationsfolien
Bilder machen Präsentationen ansprechender und interessanter. In Microsoft PowerPoint können Sie Bilder aus einer Datei, dem Internet oder anderen Orten in Folien einfügen. Ebenso ermöglicht Aspose.Slides das Hinzufügen von Bildern zu Folien in Ihren Präsentationen über verschiedene Verfahren.
Tipp
Aspose bietet kostenlose Konverter—JPEG to PowerPoint und PNG to PowerPoint—die es ermöglichen, Präsentationen schnell aus Bildern zu erstellen.Info
Wenn Sie ein Bild als Rahmenobjekt hinzufügen möchten – insbesondere, wenn Sie planen, Standard‑Formatierungsoptionen zu verwenden, um die Größe zu ändern, Effekte hinzuzufügen usw. – siehe Picture Frame.Hinweis
Sie können Ein‑ und Ausgabevorgänge mit Bildern und PowerPoint‑Präsentationen manipulieren, um ein Bild von einem Format in ein anderes zu konvertieren. Siehe diese Seiten: konvertieren image to JPG; konvertieren JPG to image; konvertieren JPG to PNG, konvertieren PNG to JPG; konvertieren PNG to SVG, konvertieren SVG to PNG.Aspose.Slides unterstützt Vorgänge mit Bildern in diesen gängigen Formaten: JPEG, PNG, GIF und andere.
Bilder, die lokal gespeichert sind, zu Folien hinzufügen
Sie können ein oder mehrere Bilder von Ihrem Computer zu einer Folie in einer Präsentation hinzufügen. Dieser Beispielcode in Java zeigt, wie man ein Bild zu einer Folie hinzufügt:
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();
}
Bilder aus dem Web zu Folien hinzufügen
Wenn das Bild, das Sie zu einer Folie hinzufügen möchten, nicht auf Ihrem Computer verfügbar ist, können Sie das Bild direkt aus dem Web hinzufügen.
Dieser Beispielcode zeigt, wie man ein Bild aus dem Web zu einer Folie in Java hinzufügt:
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();
}
Bilder zu Folienmaster hinzufügen
Ein Folienmaster ist die übergeordnete Folie, die Informationen (Design, Layout usw.) für alle darunter liegenden Folien speichert und steuert. Wenn Sie also ein Bild zu einem Folienmaster hinzufügen, erscheint dieses Bild auf jeder Folie, die diesen Master verwendet.
Dieser Java‑Beispielcode zeigt, wie man ein Bild zu einem Folienmaster hinzufügt:
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();
}
Bilder als Folienhintergründe hinzufügen
Sie können entscheiden, ein Bild als Hintergrund für eine bestimmte Folie oder mehrere Folien zu verwenden. In diesem Fall sollten Sie Setting Images as Backgrounds for Slides ansehen.
SVG zu Präsentationen hinzufügen
Sie können jedes Bild in eine Präsentation einfügen, indem Sie die Methode addPictureFrame verwenden, die zum Interface IShapeCollection gehört.
Um ein Bildobjekt auf Basis einer SVG‑Datei zu erstellen, gehen Sie wie folgt vor:
- Erstellen Sie ein SvgImage‑Objekt, um es in ImageShapeCollection einzufügen
- Erstellen Sie ein PPImage‑Objekt aus ISvgImage
- Erstellen Sie ein PictureFrame‑Objekt mithilfe der IPPImage‑Schnittstelle
Dieser Beispielcode zeigt, wie die oben genannten Schritte umgesetzt werden, um ein SVG‑Bild in eine Präsentation einzufügen:
// Instanziiere die Presentation-Klasse, die eine PPTX-Datei darstellt
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();
}
SVG in eine Gruppe von Formen konvertieren
Die SVG‑zu‑Formen‑Konvertierung von Aspose.Slides ist ähnlich der PowerPoint‑Funktionalität zur Arbeit mit SVG‑Bildern:

Die Funktion wird von einer der Überladungen der Methode addGroupShape des Interfaces IShapeCollection bereitgestellt, das ein ISvgImage‑Objekt als erstes Argument erwartet.
Dieser Beispielcode zeigt, wie die beschriebene Methode verwendet wird, um eine SVG‑Datei in eine Gruppe von Formen zu konvertieren:
// Neue Präsentation erstellen
IPresentation presentation = new Presentation();
try {
// SVG-Dateiinhalt lesen
byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));
// SvgImage-Objekt erstellen
ISvgImage svgImage = new SvgImage(svgContent);
// Foliengröße abrufen
Dimension2D slideSize = presentation.getSlideSize().getSize();
// SVG-Bild in Gruppe von Formen konvertieren und an Foliengröße anpassen
presentation.getSlides().get_Item(0).getShapes().
addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());
// Präsentation im PPTX-Format speichern
presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Bilder als EMF zu Folien hinzufügen
Aspose.Slides for Java ermöglicht es, EMF‑Bilder aus Excel‑Tabellen zu erzeugen und die Bilder mit Aspose.Cells als EMF in Folien einzufügen.
Dieser Beispielcode zeigt, wie die beschriebene Aufgabe durchgeführt wird:
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);
//Arbeitsmappe in Stream speichern
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();
}
Bilder in der Bildersammlung ersetzen
Aspose.Slides erlaubt das Ersetzen von Bildern, die in der Bildersammlung einer Präsentation gespeichert sind (einschließlich der von Folienformen genutzten). Dieser Abschnitt zeigt mehrere Vorgehensweisen zum Aktualisieren von Bildern in der Sammlung. Die API bietet einfache Methoden zum Ersetzen eines Bildes über rohe Byte‑Daten, eine IImage-Instanz oder ein anderes bereits in der Sammlung vorhandenes Bild.
Führen Sie die folgenden Schritte aus:
- Laden Sie die Präsentationsdatei, die Bilder enthält, mit der Klasse Presentation .
- Laden Sie ein neues Bild aus einer Datei in ein Byte‑Array.
- Ersetzen Sie das Zielbild durch das neue Bild mithilfe des Byte‑Arrays.
- Laden Sie im zweiten Ansatz das Bild in ein IImage-Objekt und ersetzen Sie das Zielbild durch dieses Objekt.
- Im dritten Ansatz ersetzen Sie das Zielbild durch ein Bild, das bereits in der Bildersammlung der Präsentation existiert.
- Schreiben Sie die modifizierte Präsentation als PPTX‑Datei.
// Instanziiere die Presentation-Klasse, die eine Präsentationsdatei repräsentiert.
Presentation presentation = new Presentation("sample.pptx");
try {
// Die erste Methode.
byte[] imageData = Files.readAllBytes(Paths.get("image0.jpeg"));
IPPImage oldImage = presentation.getImages().get_Item(0);
oldImage.replaceImage(imageData);
// Die zweite Methode.
IImage newImage = Images.fromFile("image1.png");
oldImage = presentation.getImages().get_Item(1);
oldImage.replaceImage(newImage);
newImage.dispose();
// Die dritte Methode.
oldImage = presentation.getImages().get_Item(2);
oldImage.replaceImage(presentation.getImages().get_Item(3));
// Speichere die Präsentation in einer Datei.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Info
Mit dem kostenlosen Aspose Text to GIF‑Konverter können Sie Texte leicht animieren, GIFs aus Texten erstellen usw.FAQ
Bleibt die ursprüngliche Bildauflösung nach dem Einfügen erhalten?
Ja. Die Quellpixel werden beibehalten, aber das endgültige Erscheinungsbild hängt davon ab, wie das picture auf der Folie skaliert wird und welche Kompression beim Speichern angewendet wird.
Was ist der beste Weg, dasselbe Logo gleichzeitig in Dutzenden Folien zu ersetzen?
Platzieren Sie das Logo auf der Master‑Folien oder einem Layout und ersetzen Sie es in der Bildersammlung der Präsentation – die Änderungen werden automatisch auf alle Elemente übertragen, die diese Ressource verwenden.
Kann ein eingefügtes SVG in bearbeitbare Formen konvertiert werden?
Ja. Sie können ein SVG in eine Gruppe von Formen konvertieren; danach lassen sich die einzelnen Teile mit den üblichen Formeigenschaften bearbeiten.
Wie kann ich ein Bild gleichzeitig als Hintergrund für mehrere Folien festlegen?
Assign the image as the background auf der Master‑Folien oder dem entsprechenden Layout – alle Folien, die diesen Master/Layout verwenden, übernehmen den Hintergrund.
Wie verhindere ich, dass die Präsentation durch viele Bilder stark anwächst?
Verwenden Sie ein einzelnes Bild mehrfach statt Duplikaten, wählen Sie angemessene Auflösungen, wenden Sie Kompression beim Speichern an und behalten Sie wiederholte Grafiken nach Möglichkeit im Master.