Prezentációs alakzatok bélyegképeinek létrehozása Androidon
Bevezetés
Az Aspose.Slides for Android via Java használható olyan prezentációs fájlok létrehozására, ahol minden oldal egy diának felel meg. A diákat a Microsoft PowerPoint segítségével nyithatja meg. Néha a fejlesztőknek különálló képszerkesztőben kell megtekinteniük a formák képeit. Ilyen esetekben az Aspose.Slides for Android via Java segít a diák alakzatainak bélyegképét generálni.
Ebben a témában bemutatjuk, hogyan lehet különböző helyzetekben diabélyegképeket készíteni:
- Alakzat bélyegképének generálása dián belül.
- Alakzat bélyegképének generálása felhasználó által meghatározott méretekkel.
- Alakzat bélyegképének készítése a forma megjelenésének határain belül.
Alakzat bélyegképének generálása diáról
Az Aspose.Slides for Android via Java segítségével egy bármely dia alakzatának bélyegképét a következőképpen hozhatja létre:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
- Szerezze meg az alakzat bélyegképét a hivatkozott diáról alapértelmezett méretezéssel.
- Mentse a bélyegképet a kívánt képformátumban.
Ez a példakód megmutatja, hogyan generálhat bélyegképet egy alakzatról egy dián:
// Példányosítsa a Presentation osztályt, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Készítsen teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage();
// Mentse a képet lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Felhasználó által definiált méretezési tényező bélyegképe
Az Aspose.Slides for Android via Java segítségével egy dián lévő alakzat bélyegképét a következőképpen állíthatja be felhasználó által meghatározott méretekkel:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
- Szerezze meg az alakzat bélyegképét a hivatkozott diáról felhasználó által meghatározott dimenziókkal.
- Mentse a bélyegképet a kívánt képformátumban.
Ez a példakód megmutatja, hogyan generálhat bélyegképet egy meghatározott méretezési tényező alapján:
// Példányosítsa a Presentation osztályt, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Készítsen teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Shape, 1, 1);
// Mentse a képet lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
Határokon alapuló alakzat megjelenés bélyegkép létrehozása
Ez a módszer lehetővé teszi a fejlesztők számára, hogy a forma megjelenésének határain belül generáljanak bélyegképet, figyelembe véve az összes formahatást. A generált bélyegkép a dián lévő határokra korlátozódik. A forma megjelenésének határain belül lévő diababélyegkép előállításához kövesse az alábbi lépéseket:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
- Szerezze meg a hivatkozott dia bélyegképét úgy, hogy a forma határait a megjelenésként használja.
- Mentse a bélyegképet a kívánt képformátumban.
Ez a példakód az előző lépések alapján készült:
// Egy Presentation osztály példányosítása, amely a prezentációs fájlt képviseli
Presentation pres = new Presentation("Thumbnail.pptx");
try {
// Készítsen teljes méretű képet
IImage slideImage = pres.getSlides().get_Item(0).getShapes().get_Item(0).getImage(ShapeThumbnailBounds.Appearance, 1, 1);
// Mentse a képet lemezre PNG formátumban
try {
slideImage.save("output.png", ImageFormat.Png);
} finally {
if (slideImage != null) slideImage.dispose();
}
} finally {
if (pres != null) pres.dispose();
}
A forma tényleges vizuális határainak lekérdezése
Az IShape keret‑tulajdonságai – a getX(), getY(), getWidth(), és getHeight() metódusok – a prezentációs modellben tárolt téglalapot írják le. A ténylegesen renderelt tartalom meghaladhatja ezt a keretet, vagy egy másik tengely‑igazított téglalapot foglalhat el. A forgatás, vonalak, nyilak, szövegelrendezés és túlcsordulás, a generált SmartArt geometria és egyéb renderelési hatások mind változtathatják az elfoglalt területet.
Használja a Shape.getVisualBounds metódust, hogy ezt a területet képkészítés nélkül kiszámítsa. A metódus egy RectF objektumot ad vissza diakoordinátákban. A visszaadott téglalap nincs levágva a diára, ezért koordinátái negatívak is lehetnek, ha a tartalom túlnyúlik a dia eredetén.
A Shape.getVisualBounds jelenleg nincs deklarálva az IShape felületen. Ezért a dián lévő forma gyűjteményéből származó formát interfész‑értékként tartsa meg, és csak a metódus hívásakor cast-olja át.
Az alábbi példa lekérdezi és összehasonlítja a keret‑ és a vizuális határokat:
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();
}
Ugyanazt a RectF objektumot használhatja a közeli formák balra, jobbra, felül vagy alul lévő élére igazításhoz; elegendő hely lefoglalásához egy generált elrendezésben; vagy a megengedett területen kívüli tartalom észleléséhez. A vizuális határok különösen hasznosak SmartArt, szövegdobozok, nyilak, képek, elforgatott alakzatok és csoportos formák esetén, ahol a tárolt keret nem tükrözi a teljes renderelt eredményt.
Használja a Shape.getVisualBounds metódust, ha koordinátákra van szüksége elrendezéshez vagy validációhoz, és nem szükséges bitmap. Használja az IShape.getImage metódust, ha a formát renderelni kell. A ShapeThumbnailBounds esetén a ShapeThumbnailBounds.Shape a képet a forma határaiból méretezi, beleértve a kontúr beállításokat, míg a ShapeThumbnailBounds.Appearance a kép méretét a forma megjelenéséből veszi, és a diahatárokra korlátozza az eredményt. Ezzel szemben a Shape.getVisualBounds csak a kiszámított téglalapot adja vissza, és nem vágja le a diára.
GYIK
Milyen képformátumok használhatók az alakzat bélyegképeinek mentésekor?
PNG, JPEG, BMP, GIF, TIFF, és egyebek. Az alakzatok exportálhatók vektor SVG‑ként a forma tartalmának SVG‑ként mentésével.
Mi a különbség a Shape és az Appearance határok között bélyegkép renderelésekor?
Shape a forma geometriáját használja; Appearance figyelembe veszi a vizuális hatásokat (árnyékok, fények stb.).
Mi történik, ha egy alakzat rejtettként van megjelölve? Továbbra is generálódik a bélyegképe?
A rejtett alakzat továbbra is része a modellnek és renderelhető; a rejtett jelző a diavetítés megjelenését befolyásolja, de nem akadályozza meg az alakzat képének generálását.
Támogatottak a csoportos alakzatok, diagramok, SmartArt és egyéb összetett objektumok?
Igen. Bármely, Shape‑ként reprezentált objektum (beleértve a GroupShape, a Chart, és a SmartArt) menthető bélyegkép vagy SVG formátumban.
Hatással vannak a rendszerben telepített betűtípusok a szöveges alakzatok bélyegképének minőségére?
Igen. Ajánlott szükséges betűtípusokat biztosítani (vagy betűtípus‑helyettesítéseket konfigurálni), hogy elkerülje a nem kívánt fallback‑eket és a szöveg átrendeződését.