Prezentációs diák konvertálása képekké Java-ban
Bevezetés
Az Aspose.Slides for Java képes egyedi diák renderelésére PowerPoint és OpenDocument prezentációkból PNG, JPEG, GIF, TIFF és egyéb képformátumokként.
A dia képbe konvertálásához kövesse az alábbi lépéseket:
- Töltse be a prezentációt a Presentation osztállyal.
- Válassza ki a megjeleníteni kívánt diát.
- Szükség esetén konfigurálja a renderelést a RenderingOptions vagy a TiffOptions osztállyal.
- Hívja meg a ISlide.getImage metódust. Ez egy IImage objektumot ad vissza.
- Hívja meg a IImage.save metódust, és adja meg a kimeneti formátumot egy ImageFormat értékkel.
Dia konvertálása PNG képre
A legegyszerűbb konvertálás az alapértelmezett renderelési beállításokat használja. A keletkezett IImage objektum memóriában feldolgozható vagy fájlba menthető.
Az alábbi Java példa rendereli az első diát, és PNG képként menti:
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
Presentation presentation = new Presentation("Presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage();
try {
image.save("Slide_0.png", ImageFormat.Png);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Diák konvertálása képekké egyéni méretekkel
Használja a ISlide.getImage túlterhelést, amely egy Dimension értéket fogad el a dia pontos képpontmérettel történő rendereléséhez.
Az alábbi példa egy 1820 × 1040 JPEG képet hoz létre:
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
import java.awt.Dimension;
Dimension imageSize = new Dimension(1820, 1040);
Presentation presentation = new Presentation("Presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(imageSize);
try {
image.save("Slide_0.jpg", ImageFormat.Jpeg);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Dia konvertálása jegyzetekkel és megjegyzésekkel képekké
Alapértelmezés szerint a dia képei nem tartalmazzák a jegyzeteket vagy megjegyzéseket. Adjon át egy NotesCommentsLayoutingOptions objektumot a RenderingOptions.setSlidesLayoutOptions metódusnak, hogy szabályozza, hol jelenjenek meg a jegyzetek és megjegyzések.
Az alábbi példa a lekicsinyített jegyzeteket a dia alá, a megjegyzéseket pedig jobbra helyezi:
import com.aspose.slides.CommentsPositions;
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.NotesCommentsLayoutingOptions;
import com.aspose.slides.NotesPositions;
import com.aspose.slides.Presentation;
import com.aspose.slides.RenderingOptions;
import java.awt.Color;
float scaleX = 2f;
float scaleY = scaleX;
Color commentsAreaColor = new Color(250, 235, 215);
NotesCommentsLayoutingOptions layoutOptions = new NotesCommentsLayoutingOptions();
layoutOptions.setNotesPosition(NotesPositions.BottomTruncated);
layoutOptions.setCommentsPosition(CommentsPositions.Right);
layoutOptions.setCommentsAreaWidth(500);
layoutOptions.setCommentsAreaColor(commentsAreaColor);
RenderingOptions renderingOptions = new RenderingOptions();
renderingOptions.setSlidesLayoutOptions(layoutOptions);
Presentation presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(renderingOptions, scaleX, scaleY);
try {
image.save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Figyelmeztetés
Dia képre konvertálásnál ne adjon át BottomFull a NotesCommentsLayoutingOptions.setNotesPosition metódusnak. A jegyzetek több szöveget tartalmazhatnak, mint amit a fix képméret befogadhat. Helyette használja a BottomTruncated opciót.Diák konvertálása képekké TIFF opciók használatával
A TiffOptions osztály lehetővé teszi a renderelt TIFF kép méretének, felbontásának és egyéb tulajdonságainak szabályozását.
Az alábbi példa az első diát 2160 × 2880 méretű, 300 DPI-s TIFF képként rendereli:
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
import com.aspose.slides.TiffOptions;
import java.awt.Dimension;
Dimension imageSize = new Dimension(2160, 2880);
TiffOptions tiffOptions = new TiffOptions();
tiffOptions.setImageSize(imageSize);
tiffOptions.setDpiX(300);
tiffOptions.setDpiY(300);
Presentation presentation = new Presentation("sample.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IImage image = slide.getImage(tiffOptions);
try {
image.save("output.tiff", ImageFormat.Tiff);
} finally {
image.dispose();
}
} finally {
presentation.dispose();
}
Figyelmeztetés
A TIFF támogatás nem garantált a JDK 9 előtti Java verziókban.Minden dia konvertálása képekké
Iteráljon a diakollekción, hogy a teljes prezentációt képsorozattá alakítsa. A rejtett diák is bele vannak foglalva, hacsak nem hagyja ki őket kifejezetten.
Az alábbi példa minden diát JPEG képként renderel, a vízszintes és függőleges méretezési tényezővel 2:
import com.aspose.slides.IImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ImageFormat;
import com.aspose.slides.Presentation;
float scaleX = 2f;
float scaleY = scaleX;
Presentation presentation = new Presentation("Presentation.pptx");
try {
int slideCount = presentation.getSlides().size();
for (int index = 0; index < slideCount; index++) {
ISlide slide = presentation.getSlides().get_Item(index);
IImage image = slide.getImage(scaleX, scaleY);
try {
image.save("Slide_" + index + ".jpg", ImageFormat.Jpeg);
} finally {
image.dispose();
}
}
} finally {
presentation.dispose();
}
Enhanced Metafile (EMF) kimenet létrehozása
Az Enhanced Metafile (EMF) akkor hasznos, amikor vektoralapú grafikákat kell cserélni a Microsoft Office vagy más Windows alkalmazásokkal, amelyek támogatják a Windows metafájlokat. A pixelalapú képpel szemben egy EMF megőrizheti a vektoros rajzolási műveleteket, amelyek méretezéskor nem veszítenek élességben. Azonban az EMF elsősorban kompatibilitási formátum Windows metafájl támogatással rendelkező alkalmazások számára, nem egy univerzális csereformátum. Emellett a komplex diá tartalom, például bitmap képek és egyes hatások, rasterizált elemekként tárolhatók a vektor metafájl konténerben.
Dia exportálása EMF-re
A ISlide.writeAsEmf metódus egy [ISlide] objektumot egy cél streambe EMF formátumban ír. Az alábbi példa betölti a prezentációt, kiválasztja az első diát, és egy EMF fájl streambe írja:
import com.aspose.slides.ISlide;
import com.aspose.slides.Presentation;
import java.io.FileOutputStream;
Presentation presentation = new Presentation("Presentation.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
FileOutputStream emfStream = new FileOutputStream("Slide_0.emf");
try {
slide.writeAsEmf(emfStream);
} finally {
emfStream.close();
}
} finally {
presentation.dispose();
}
A hívó tulajdonolja a [ISlide.writeAsEmf] metódusnak átadott streamet, és felelős annak lezárásáért, ahogyan fent is látható.
SVG kép konvertálása EMF-re és hozzáadása egy prezentációhoz
Használja a ISvgImage.writeAsEmf metódust az SVG tartalom EMF-re konvertálásához. A keletkezett bájtok hozzáadhatók a prezentációhoz a IImageCollection.addImage segítségével, és a IShapeCollection.addPictureFrame metódussal elhelyezhetők egy dián.
Az alábbi példa egy [SvgImage] objektumot hoz létre SVG markupból, memóriában EMF-re konvertálja, a metafájlt az első diára helyezi el, majd menti a prezentációt:
import com.aspose.slides.IPPImage;
import com.aspose.slides.ISlide;
import com.aspose.slides.ISvgImage;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;
import com.aspose.slides.ShapeType;
import com.aspose.slides.SvgImage;
import java.io.ByteArrayOutputStream;
String svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"100\"><rect width=\"200\" height=\"100\" fill=\"#4472C4\"/></svg>";
ISvgImage svgImage = new SvgImage(svgContent);
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
ByteArrayOutputStream emfStream = new ByteArrayOutputStream();
try {
svgImage.writeAsEmf(emfStream);
byte[] emfData = emfStream.toByteArray();
IPPImage image = presentation.getImages().addImage(emfData);
slide.getShapes().addPictureFrame(ShapeType.Rectangle, 20, 20, 200, 100, image);
} finally {
emfStream.close();
}
presentation.save("Presentation_with_emf.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
ISvgImage.writeAsEmf nem veszi át a cél stream tulajdonjogát. A ByteArrayOutputStream az összes generált adatot memóriában tárolja, így a toByteArray hívása előtt nincs szükség a pozíció visszaállítására. A visszaadott byte tömb a stream lezárása után is érvényes.
Az EMF generálás elérhető azokban a operációs rendszerekben, amelyeket a kiválasztott Aspose.Slides for Java és JDK konfiguráció támogat, azonban a renderelés platformonként eltérhet, ha betűtípusok vagy grafikai függőségek nem állnak rendelkezésre. Telepítse a forrás tartalom által használt betűtípusokat vagy konfiguráljon megfelelő helyettesítéseket, kövesse az platformkövetelményeket az Aspose.Slides for Java-hoz, és ellenőrizze az eredményt a cél EMF-öt fogyasztó alkalmazásban. A Linux és macOS alkalmazások gyakran korlátozott vagy inkonzisztens támogatással rendelkeznek a Windows metafájlok megjelenítésére és szerkesztésére.
Színes Emoji renderelés
Megjegyzés
A prezentáció diái képekké konvertálásakor a színes emoji-k helyes rendereléséhez a prezentációban használt emoji betűtípusoknak telepítve kell lenniük, és elérhetőeknek kell lenniük azon a rendszeren, amely a konvertálást végzi. Például, ha a prezentáció Segoe UI Emoji betűtípust használ, és ez hiányzik, az emoji-k monokrómként jelenhetnek meg a kimeneti képeken.GYIK
Támogatja az Aspose.Slides a diák animációval történő renderelését?
Nem. Az ISlide.getImage metódus a dia statikus képét rendereli, és nem exportálja az animációkat.
Exportálhatók rejtett diák képekként?
Igen. A rejtett diák úgy renderelhetők, mint a normál diák. Vegye fel őket a feldolgozási ciklusba, ahogyan a fenti példában is látható.
Megmaradnak az árnyékok és egyéb hatások a dia képeiben?
Igen. Az Aspose.Slides árnyékokat, áttetszőséget és egyéb támogatott grafikai hatásokat renderel a dia képeiben.