Ottimizza la gestione delle immagini nelle presentazioni con Java
Introduzione
Le immagini rendono le presentazioni più coinvolgenti e interessanti. In Microsoft PowerPoint, è possibile inserire immagini da un file, da Internet o da altre posizioni nelle diapositive. Allo stesso modo, Aspose.Slides consente di aggiungere immagini alle diapositive delle proprie presentazioni attraverso diverse procedure.
Suggerimento
Aspose offre convertitori gratuiti—JPEG a PowerPoint e PNG a PowerPoint—che permettono di creare rapidamente presentazioni a partire dalle immagini.Informazione
Se desideri aggiungere un’immagine come oggetto di fotogramma—soprattutto se intendi utilizzare le opzioni di formattazione standard per modificare le sue dimensioni, aggiungere effetti, ecc.—consulta la sezione Picture Frame.Nota
Puoi gestire le operazioni di input/output che coinvolgono immagini e presentazioni PowerPoint per convertire un’immagine da un formato all’altro. Vedi queste pagine: converti immagine in JPG; converti JPG in immagine; converti JPG in PNG, converti PNG in JPG; converti PNG in SVG, converti SVG in PNG.Aspose.Slides supporta operazioni con immagini nei formati più diffusi: JPEG, PNG, GIF e altri.
Aggiungere immagini archiviate localmente alle diapositive
Puoi aggiungere una o più immagini presenti sul tuo computer a una diapositiva di una presentazione. Questo esempio di codice in Java mostra come aggiungere un’immagine a una diapositiva:
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();
}
Aggiungere immagini dal Web alle diapositive
Se l’immagine che desideri aggiungere a una diapositiva non è disponibile sul tuo computer, puoi inserirla direttamente dal Web.
Questo esempio di codice mostra come aggiungere un’immagine dal Web a una diapositiva in 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();
}
Aggiungere immagini ai master delle diapositive
Un master di diapositiva è la diapositiva superiore che memorizza e controlla le informazioni (tema, layout, ecc.) di tutte le diapositive sottostanti. Pertanto, quando aggiungi un’immagine a un master di diapositiva, quell’immagine appare su tutte le diapositive che utilizzano quel master.
Questo esempio di codice Java mostra come aggiungere un’immagine a un master di diapositiva:
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();
}
Aggiungere immagini come sfondo delle diapositive
Potresti decidere di utilizzare un’immagine come sfondo per una specifica diapositiva o per più diapositive. In tal caso, consulta Impostare le immagini come sfondi per le diapositive.
Aggiungere SVG alle presentazioni
Puoi aggiungere o inserire qualsiasi immagine in una presentazione utilizzando il metodo addPictureFrame appartenente all’interfaccia IShapeCollection.
Per creare un oggetto immagine basato su SVG, puoi procedere in questo modo:
- Crea un oggetto SvgImage da inserire in ImageShapeCollection
- Crea un oggetto PPImage da ISvgImage
- Crea un oggetto PictureFrame usando l’interfaccia IPPImage
Questo esempio di codice mostra come implementare i passaggi precedenti per aggiungere un’immagine SVG a una presentazione:
// Istanzia la classe Presentation che rappresenta il file 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();
}
Convertire SVG in un insieme di forme
La conversione di SVG in un insieme di forme di Aspose.Slides è simile alla funzionalità di PowerPoint utilizzata per lavorare con immagini SVG:

La funzionalità è fornita da una delle sovraccariche del metodo addGroupShape dell’interfaccia IShapeCollection che accetta un oggetto ISvgImage come primo argomento.
Questo esempio di codice mostra come utilizzare il metodo descritto per convertire un file SVG in un insieme di forme:
// Crea una nuova presentazione
IPresentation presentation = new Presentation();
try {
// Leggi il contenuto del file SVG
byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));
// Crea l'oggetto SvgImage
ISvgImage svgImage = new SvgImage(svgContent);
// Ottieni la dimensione della diapositiva
Dimension2D slideSize = presentation.getSlideSize().getSize();
// Converti l'immagine SVG in un gruppo di forme scalandola alla dimensione della diapositiva
presentation.getSlides().get_Item(0).getShapes().
addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());
// Salva la presentazione in formato PPTX
presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Aggiungere immagini come EMF alle diapositive
Aspose.Slides per Java consente di generare immagini EMF da fogli Excel e di aggiungere le immagini come EMF nelle diapositive con Aspose.Cells.
Questo esempio di codice mostra come eseguire l’operazione descritta:
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);
//Salva la cartella di lavoro su stream
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();
}
Sostituire immagini nella raccolta di immagini
Aspose.Slides permette di sostituire le immagini archiviate nella raccolta di immagini di una presentazione (incluse quelle utilizzate dalle forme delle diapositive). Questa sezione mostra diversi approcci per aggiornare le immagini nella raccolta. L’API fornisce metodi semplici per sostituire un’immagine utilizzando dati byte grezzi, un’istanza IImage o un’altra immagine già presente nella raccolta.
Segui i passaggi seguenti:
- Carica il file di presentazione che contiene le immagini tramite la classe Presentation.
- Carica una nuova immagine da un file in un array di byte.
- Sostituisci l’immagine di destinazione con la nuova immagine utilizzando l’array di byte.
- Nel secondo approccio, carica l’immagine in un oggetto IImage e sostituisci l’immagine di destinazione con quell’oggetto.
- Nel terzo approccio, sostituisci l’immagine di destinazione con un’immagine che già esiste nella raccolta di immagini della presentazione.
- Salva la presentazione modificata come file PPTX.
// Istanzia la classe Presentation che rappresenta un file di presentazione.
Presentation presentation = new Presentation("sample.pptx");
try {
// Il primo modo.
byte[] imageData = Files.readAllBytes(Paths.get("image0.jpeg"));
IPPImage oldImage = presentation.getImages().get_Item(0);
oldImage.replaceImage(imageData);
// Il secondo modo.
IImage newImage = Images.fromFile("image1.png");
oldImage = presentation.getImages().get_Item(1);
oldImage.replaceImage(newImage);
newImage.dispose();
// Il terzo modo.
oldImage = presentation.getImages().get_Item(2);
oldImage.replaceImage(presentation.getImages().get_Item(3));
// Salva la presentazione in un file.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Informazione
Utilizzando il convertitore GRATUITO Aspose Text to GIF, puoi animare facilmente testi, creare GIF da testi, ecc.FAQ
La risoluzione originale dell’immagine rimane intatta dopo l’inserimento?
Sì. I pixel originali vengono preservati, ma l’aspetto finale dipende da come l'immagine è scalata sulla diapositiva e da eventuali compressioni applicate al salvataggio.
Qual è il modo migliore per sostituire lo stesso logo su decine di diapositive in una sola volta?
Posiziona il logo sul master delle diapositive o su un layout e sostituirlo nella raccolta di immagini della presentazione: le modifiche si propagheranno a tutti gli elementi che utilizzano quella risorsa.
Un SVG inserito può essere convertito in forme modificabili?
Sì. È possibile convertire un SVG in un gruppo di forme; successivamente le singole parti diventano modificabili con le proprietà standard delle forme.
Come posso impostare un’immagine come sfondo per più diapositive contemporaneamente?
Assegna l’immagine come sfondo sul master delle diapositive o sul layout pertinente: tutte le diapositive che usano quel master/layout erediteranno lo sfondo.
Come evito che la presentazione “gonfi” di dimensioni a causa di troppe immagini?
Riutilizza una singola risorsa immagine invece di duplicati, scegli risoluzioni adeguate, applica compressione al salvataggio e mantieni le grafiche ricorrenti sul master quando opportuno.