Skapa miniatyrbilder av presentationsformer på Android
Introduktion
Aspose.Slides för Android via Java kan användas för att skapa presentationsfiler där varje sida motsvarar en bild. Bilderna kan visas genom att öppna presentationsfilerna i Microsoft PowerPoint. Ibland behöver utvecklare dock se bildernas former separat i en bildvisare. I sådana fall hjälper Aspose.Slides för Android via Java dem att generera miniatyrbilder av bildformerna.
I detta avsnitt visar vi hur man genererar miniatyrbilder av former i olika situationer:
- Generera en miniatyr av en form i en bild.
- Generera en miniatyr av en form med användardefinierade dimensioner.
- Generera en miniatyr av en form inom begränsningarna för formens utseende.
Generera en formminiatyr från en bild
För att generera en formminiatyr från en valfri bild med Aspose.Slides för Android via Java, gör så här:
- Skapa en instans avPresentationklassen.
- Hämta referensen till en valfri bild med dess ID eller index.
- Get the shape thumbnail imageför den refererade bilden med standardskala.
- Spara miniatyrbilden i önskat bildformat.
Detta exempel visar hur du genererar en formminiatyr från en bild:
// Instansiera en Presentation-klass som representerar presentationsfilen
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Skapa en bild i full skala
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
// Spara bilden till disk i PNG-format
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Generera en miniatyr med användardefinierad skalningsfaktor
För att generera formminiatyren för en bild med Aspose.Slides för Android via Java, gör så här:
- Skapa en instans avPresentationklassen.
- Hämta referensen till en valfri bild med dess ID eller index.
- Get the shape thumbnail imageför den refererade bilden med användardefinierade dimensioner.
- Spara miniatyrbilden i önskat bildformat.
Detta exempel visar hur du genererar en formminiatyr baserad på en definierad skalningsfaktor:
// Instansiera en Presentation-klass som representerar presentationsfilen
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Skapa en bild i full skala
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Shape, 1, 1);
// Spara bilden till disk i PNG-format
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Skapa en miniatyr baserad på bildens gränser för formens utseende
Denna metod för att skapa miniatyrer av former låter utvecklare generera en miniatyr inom gränserna för formens utseende. Den tar hänsyn till alla formeffekter. Den genererade formminiatyren begränsas av bildens gränser. För att generera en miniatyr av en bildform i dess utseendes gräns, gör så här:
- Skapa en instans avPresentationklassen.
- Hämta referensen till en valfri bild med dess ID eller index.
- Hämta miniatyrbilden för den refererade bilden med formens gränser som utseende.
- Spara miniatyrbilden i önskat bildformat.
Detta exempel bygger på stegen ovan:
// Instansiera en Presentation-klass som representerar presentationsfilen
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Skapa en bild i full skala
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Appearance, 1, 1);
// Spara bilden till disk i PNG-format
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Hämta de faktiska visuella gränserna för en form
Ram‑egenskaperna förIShape—dessgetX(), getY(), getWidth() ochgetHeight()‑metoder—beskriver rektangeln som lagras i presentationsmodellen. Innehållet som faktiskt renderas kan sträcka sig utanför den ramen eller uppta en annan axeljusterad rektangel. Rotation, konturer, pilspetsar, textlayout och överflöde, genererad SmartArt‑geometri och andra renderingeffekter kan alla förändra det upptagna området.
AnvändShape.getVisualBoundsför att beräkna det upptagna området utan att skapa en bild. Metoden returnerar ettRectF i bildkoordinater. Den returnerade rektangeln är inte beskuren till bilden, så dess koordinater kan vara negativa när innehållet sträcker sig utanför bildens ursprung.
Shape.getVisualBoundsär för närvarande inte deklarerad iIShape‑gränssnittet. Därför bör du behålla formen som hämtas från bildens formsamling som ett gränssnittsvärde och bara kasta den när du anropar metoden.
Följande exempel hämtar och jämför ramen och de visuella gränserna:
Presentation presentation = new Presentation("example.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(0);
IShape shape = slide.getShapes().get_Item(0);
RectF visualBounds = ((Shape) shape).getVisualBounds();
float frameLeft = shape.getX();
float frameTop = shape.getY();
float frameRight = frameLeft + shape.getWidth();
float frameBottom = frameTop + shape.getHeight();
RectF frameBounds = new RectF(frameLeft, frameTop, frameRight, frameBottom);
System.out.println("Frame bounds: " + frameBounds);
System.out.println("Visual bounds: " + visualBounds);
} finally {
presentation.dispose();
}
SammaRectFkan användas för att justera intilliggande former till dess vänstra, högra, övre eller nedre kant; reservera tillräckligt med utrymme i en genererad layout; eller upptäcka innehåll utanför ett tillåtet område. Visuella gränser är särskilt användbara för SmartArt, textrutor, pilar, bilder, roterade former och gruppformer, där den lagrade ramen kanske inte representerar hela renderingsresultatet.
AnvändShape.getVisualBoundsnär du behöver koordinater för layout eller validering och inte behöver en bitmap. AnvändIShape.getImagenär du behöver rendera formen. MedShapeThumbnailBoundsShapeThumbnailBounds.Shapestorlekar bilden från formens gränser, inklusive konturinställningar, medanShapeThumbnailBounds.Appearancestorlekar den från formens utseende och begränsar resultatet till bildens gränser. I kontrast returnerarShape.getVisualBoundsendast den beräknade rektangeln och beskär den inte till bilden.
FAQ
Vilka bildformat kan användas när formminiatyren sparas?
PNG, JPEG, BMP, GIF, TIFF, och andra. Former kan ocksåexporteras som vektor‑SVGgenom att spara formens innehåll som SVG.
Vad är skillnaden mellan Shape‑ och Appearance‑gränser när en miniatyr renderas?
Shape använder formens geometri; Appearance tarvisual effects(skuggor, glöd osv.) i beaktande.
Vad händer om en form är markerad som dold? Renderas den fortfarande som en miniatyr?
En dold form förblir en del av modellen och kan renderas; den dolda flaggan påverkar bara bildspelsvisning men hindrar inte generering av formens bild.
Stöds gruppformer, diagram, SmartArt och andra komplexa objekt?
Ja. Alla objekt som representeras somShape(inklusiveGroupShape,ChartochSmartArt)kan sparas som en miniatyr eller som SVG.
Påverkar systeminstallerade teckensnitt kvaliteten på miniatyrer för textformer?
Ja. Du börprovide the required fonts(ellerconfigure font substitutions)för att undvika oönskade ersättningar och textomslag.