Optimalizace správy obrázků v prezentacích na Androidu
Úvod
Obrázky činí prezentace poutavějšími a zajímavějšími. V Microsoft PowerPoint můžete do snímků vkládat obrázky ze souboru, z internetu nebo jiných míst. Podobně Aspose.Slides umožňuje přidávat obrázky do snímků vašich prezentací různými postupy.
Tip
Aspose poskytuje bezplatné konvertory — JPEG do PowerPoint a PNG do PowerPoint — které lidem umožňují rychle vytvořit prezentace z obrázků.Info
Pokud chcete přidat obrázek jako objekt rámce — zejména pokud plánujete použít standardní možnosti formátování k změně velikosti, přidání efektů a podobně — viz Rámec obrázku.Aspose.Slides podporuje operace s obrázky v těchto populárních formátech: JPEG, PNG, GIF a další.
Přidání lokálně uložených obrázků do snímků
Můžete přidat jeden nebo více obrázků z vašeho počítače na snímek v prezentaci. Tento ukázkový kód v Java ukazuje, jak přidat obrázek na snímek:
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();
}
Přidání obrázků z webu do snímků
Pokud obrázek, který chcete přidat na snímek, není k dispozici ve vašem počítači, můžete jej přidat přímo z webu.
Tento ukázkový kód ukazuje, jak přidat obrázek z webu na snímek v 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();
}
Přidání obrázků do hlavních snímků (Slide Masters)
Hlavní snímek (slide master) je nejvyšší snímek, který ukládá a řídí informace (téma, rozložení atd.) o všech snímcích pod ním. Když tedy přidáte obrázek do hlavního snímku, tento obrázek se zobrazí na každém snímku pod tímto hlavním snímkem.
Tento ukázkový kód v Java ukazuje, jak přidat obrázek do hlavního snímku:
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();
}
Přidání obrázků jako pozadí snímků
Můžete se rozhodnout použít obrázek jako pozadí konkrétního snímku nebo několika snímků. V takovém případě se podívejte na Nastavení obrázků jako pozadí snímků.
Přidání SVG do prezentací
Můžete přidat nebo vložit jakýkoli obrázek do prezentace pomocí metody addPictureFrame patřící do rozhraní IShapeCollection.
Pro vytvoření objektu obrázku založeného na SVG můžete postupovat takto:
- Vytvořte objekt SvgImage, který vložíte do ImageShapeCollection
- Vytvořte objekt PPImage z ISvgImage
- Vytvořte objekt PictureFrame pomocí rozhraní IPPImage
Tento ukázkový kód ukazuje, jak implementovat výše uvedené kroky pro přidání SVG obrázku do prezentace:
// Vytvořte instanci třídy Presentation, která představuje soubor 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();
}
Převod SVG na sadu tvarů
Převod SVG na sadu tvarů v Aspose.Slides je podobný funkci PowerPointu používané pro práci s SVG obrázky:

Funkčnost je poskytována jedním z přetížených metod addGroupShape rozhraní IShapeCollection, která přijímá objekt ISvgImage jako první argument.
Tento ukázkový kód ukazuje, jak použít popsanou metodu k převodu SVG souboru na sadu tvarů:
// Vytvořte novou prezentaci
IPresentation presentation = new Presentation();
try {
// Načtěte obsah SVG souboru
byte[] svgContent = Files.readAllBytes(Paths.get("image.svg"));
// Vytvořte objekt SvgImage
ISvgImage svgImage = new SvgImage(svgContent);
// Získejte velikost snímku
Dimension2D slideSize = presentation.getSlideSize().getSize();
// Převod SVG obrázku na skupinu tvarů a jeho škálování na velikost snímku
presentation.getSlides().get_Item(0).getShapes().
addGroupShape(svgImage, 0f, 0f, (float)slideSize.getWidth(), (float)slideSize.getHeight());
// Uložte prezentaci ve formátu PPTX
presentation.save("output.pptx", SaveFormat.Pptx);
} catch (IOException e) {
} finally {
if (presentation != null) presentation.dispose();
}
Přidání obrázků jako EMF do snímků
Aspose.Slides for Android via Java vám umožňuje generovat EMF obrázky z listů Excelu a přidávat je jako EMF do snímků pomocí Aspose.Cells.
Tento ukázkový kód ukazuje, jak provést popsaný úkol:
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);
//Uložte sešit do streamu
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();
}
Nahrazení obrázků v kolekci obrázků
Aspose.Slides vám umožňuje nahradit obrázky uložené v kolekci obrázků prezentace (včetně těch, které používají tvary snímků). Tato sekce ukazuje několik přístupů k aktualizaci obrázků v kolekci. API poskytuje přímé metody pro nahrazení obrázku pomocí surových bajtových dat, instance IImage nebo jiného obrázku, který již v kolekci existuje.
Postupujte podle následujících kroků:
- Načtěte soubor prezentace obsahující obrázky pomocí třídy Presentation.
- Načtěte nový obrázek ze souboru do pole bajtů.
- Nahraďte cílový obrázek novým obrázkem pomocí pole bajtů.
- Ve druhém přístupu načtěte obrázek do objektu IImage a nahraďte cílový obrázek tímto objektem.
- Ve třetím přístupu nahraďte cílový obrázek obrázkem, který již v kolekci prezentace existuje.
- Uložte upravenou prezentaci jako soubor PPTX.
// Vytvořte instanci třídy Presentation, která představuje soubor prezentace.
Presentation presentation = new Presentation("sample.pptx");
try {
// První způsob.
IImage imageData = Images.fromStream(new FileInputStream("image0.jpeg"));
IPPImage oldImage = presentation.getImages().get_Item(0);
oldImage.replaceImage(imageData);
// Druhý způsob.
IImage newImage = Images.fromFile("image1.png");
oldImage = presentation.getImages().get_Item(1);
oldImage.replaceImage(newImage);
newImage.dispose();
// Třetí způsob.
oldImage = presentation.getImages().get_Item(2);
oldImage.replaceImage(presentation.getImages().get_Item(3));
// Uložte prezentaci do souboru.
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Info
Pomocí Aspose FREE Text to GIF konvertoru můžete snadno animovat texty, vytvářet GIFy z textů atd.Často kladené otázky
Zůstane původní rozlišení obrázku po vložení zachováno?
Ano. Původní pixely jsou zachovány, ale konečný vzhled závisí na tom, jak je obrázek na snímku měněn a jaká komprese je použita při uložení.
Jaký je nejlepší způsob, jak najednou nahradit stejné logo na desítky snímků?
Umístěte logo na hlavní snímek nebo rozložení a nahraďte jej v kolekci obrázků prezentace — aktualizace se projeví ve všech prvcích, které tento zdroj používají.
Lze vložený SVG převést na editovatelné tvary?
Ano. SVG můžete převést na skupinu tvarů, po čemž se jednotlivé části stanou editovatelnými pomocí standardních vlastností tvarů.
Jak nastavit obrázek jako pozadí pro více snímků najednou?
přiřaďte obrázek jako pozadí na hlavní snímek nebo odpovídající rozložení — všechny snímky používající tento hlavní snímek/rozložení pozadí zdědí.
Jak zabránit „nafouknutí“ velikosti prezentace kvůli mnoha obrázkům?
Znovu použijte jeden zdroj obrázku místo duplicit, zvolte rozumné rozlišení, aplikujte kompresi při uložení a opakující se grafiku umístěte na hlavní snímek, kde je to vhodné.