Prezentációs diák konvertálása képekké Androidon
Bevezetés
Az Aspose.Slides for Android via Java képes a PowerPoint és OpenDocument prezentációk egyes diákját PNG, JPEG, GIF, TIFF és más képformátumokban megjeleníteni.
Egy dia képpé 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 állítsa be a megjeleníté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 az IImage.save metódust, és adja meg a kimeneti formátumot egy ImageFormat értékkel.
Dia konvertálása PNG képpé
A legegyszerűbb konvertálás az alapértelmezett megjelenítési beállítások használatával történik. A kapott IImage objektum feldolgozható memóriában vagy menthető fájlba.
Az alábbi Java példa a első diát rendereli, é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 egyéni méretekkel
Használja az ISlide.getImage túlterhelést, amely egy Size értéket fogad, hogy a diát pontos képpontméretekkel renderelje.
Az alábbi példa egy 1820 × 1040 méretű 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 com.aspose.slides.android.Size;
Size imageSize = new Size(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();
}
Diák konvertálása megjegyzésekkel és megjegyzésekkel együtt
Alapértelmezés szerint a diaképek nem tartalmazzák a jegyzeteket vagy a kommentárokat. Adjon meg egy NotesCommentsLayoutingOptions objektumot a RenderingOptions.setSlidesLayoutOptions metódusnak, hogy szabályozza, hol jelenjenek meg a jegyzetek és kommentárok.
Az alábbi példa a levágott jegyzeteket a dia alá, a kommentárokat pedig jobbra helyezi:
import android.graphics.Color;
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;
float scaleX = 2f;
float scaleY = scaleX;
int commentsAreaColor = Color.rgb(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();
}
Warning
Dia‑kép konvertálásánál ne adja át a BottomFull értéket a NotesCommentsLayoutingOptions.setNotesPosition metódusnak. A jegyzetek több szöveget tartalmazhatnak, mint amennyit a fix képméret befogad. Használja helyette a BottomTruncated értéket.Diák konvertálása TIFF beállításokkal
A TiffOptions osztály lehetővé teszi a renderelt TIFF kép méretének, felbontásának és egyéb tulajdonságainak vezérlését.
Az alábbi példa az első diát 2160 × 2880 pixeles, 300 DPI‑s TIFF képpé 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 com.aspose.slides.android.Size;
Size imageSize = new Size(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();
}
Az összes dia konvertálása képekké
Iteráljon a dia‑gyűjteményen, hogy a teljes prezentációt sorozat képpé alakítsa. A rejtett diák is belekerülnek, hacsak nem hagyja ki őket kifejezetten.
Az alábbi példa minden diát JPEG képként renderel, vízszintes és függőleges méretezési tényezőkkel 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 vektorgrafikákat kell cserélni a Microsoft Office‑sal vagy más Windows‑alkalmazásokkal, amelyek támogatják a Windows metafájlokat. A pixel‑alapú képpel ellentétben az EMF megőrizheti a vektoros ábrázolást, amely skálázáskor nem veszti el a pontosságát. Az EMF azonban elsősorban kompatibilitási formátum Windows‑metafájl‑támogatással rendelkező alkalmazások számára, nem pedig univerzális csereformátum. Emellett a komplex dia‑tartalom, például bitmap képek és egyes effektusok, rasterizált elemekként jelenhet meg a vektor‑metafájl konténerben.
Dia exportálása EMF‑be
Az ISlide.writeAsEmf metódus egy ISlide objektumot ír egy cél‑streambe EMF formátumban. Az alábbi példa betölt egy prezentációt, kiválasztja az első diát, és 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 a fenti példában látható.
SVG kép konvertálása EMF‑be és hozzáadása a prezentációhoz
Használja az ISvgImage.writeAsEmf metódust az SVG tartalom EMF‑re való átalakításához. A kapott bájtok hozzáadhatók a prezentációhoz a IImageCollection.addImage metódussal, és elhelyezhetők egy dián a IShapeCollection.addPictureFrame metódussal.
Az alábbi példa egy SVG‑markuptól kiindulva létrehoz egy SvgImage-t, konvertálja memóriabeli EMF‑be, beilleszti a metafájlt az első diára, és elmenti 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();
}
Az ISvgImage.writeAsEmf nem veszi át a cél‑stream tulajdonjogát. Egy ByteArrayOutputStream minden generált adatot memóriában tárol, így a toByteArray hívása előtt nincs szükség a pozíció visszaállítására. A visszaadott bájt‑tömb a stream lezárása után is érvényes marad.
Az EMF generálás elérhető a támogatott Android‑verziókon és eszközkonfigurációkon, de a renderelés eltérhet, ha a betűkészletek vagy grafikus függőségek nem állnak rendelkezésre. Telepítse a forrás‑tartalom által használt betűkészleteket, vagy konfigurálja a megfelelő helyettesítéseket, kövesse a telepítési útmutatót az Aspose.Slides for Android via Java használatához, és ellenőrizze az eredményt a cél EMF‑fogyasztó alkalmazásban. A nem‑Windows platformokon futó alkalmazások gyakran korlátozott vagy változó támogatással rendelkeznek a Windows‑metafájlok megjelenítésében és szerkesztésében.
Színes Emoji renderelés
Note
A prezentációs diák kép‑formátumba való konvertálásakor a színes emoji‑k helyes megjelenítéséhez a prezentációban használt emoji‑betűkészleteket telepíteni kell, és elérhetőknek kell lenniük azon a rendszeren, amely a konvertálást végzi. Például ha a prezentáció a Segoe UI Emoji betűkészletet használja, é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 statikus képet állít elő a diákról, és nem exportálja az animációkat.
Exportálhatók-e a rejtett diák képként?
Igen. A rejtett diák ugyanúgy renderelhetők, mint a normál diák. Vegye fel őket a feldolgozási ciklusba, ahogyan a fenti példában látható.
Megmaradnak-e az árnyékok és egyéb effektusok a diaképekben?
Igen. Az Aspose.Slides árnyékokat, átlátszóságot és a támogatott grafikai effektusok többi részét megjeleníti a diaképeken.