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:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
  3. Szerezze meg az alakzat bélyegképét a hivatkozott diáról alapértelmezett méretezéssel.
  4. 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:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
  3. Szerezze meg az alakzat bélyegképét a hivatkozott diáról felhasználó által meghatározott dimenziókkal.
  4. 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:

  1. Hozzon létre egy példányt a Presentation osztályból.
  2. Szerezze be egy diát a referencia segítségével azonosító vagy index alapján.
  3. Szerezze meg a hivatkozott dia bélyegképét úgy, hogy a forma határait a megjelenésként használja.
  4. 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.