Bélyegképek létrehozása a prezentációs alakzatokhoz .NET-ben
Bevezetés
Aspose.Slides for .NET a prezentációs fájlok létrehozására szolgál, ahol minden oldal egy diát jelent. Ezek a diák megtekinthetők a prezentációs fájlok Microsoft PowerPoint programmal történő megnyitásával. Néha azonban a fejlesztőknek szükségük lehet a alakzatok képeinek külön képolvasóban történő megtekintésére. Ilyen esetekben az Aspose.Slides for .NET segít a diákat alkotó alakzatok bélyegkép‑képeinek előállításában. Ennek a funkciónak a használatát az alábbi cikk részletezi.
Ez a cikk azt mutatja be, hogyan lehet különböző módokon előállítani diabélyegek képeit:
- Alakzat bélyegképének előállítása egy dián belül.
- Alakzat bélyegképének előállítása felhasználó által meghatározott méretekkel.
- Alakzat bélyegképének előállítása az alakzat megjelenésének határain belül.
Alakzat bélyegképének előállítása diáról
Az Aspose.Slides for .NET használatával bármely diáról alakzat bélyegképét a következőképpen állíthatja elő:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze be egy diának a hivatkozását az azonosítója vagy indexe alapján.
- Szerezze meg a hivatkozott dia alakzat bélyegkép‑képét az alapértelmezett méretezésben.
- Mentse el a bélyegkép képet bármilyen kívánt képtformátumba.
Az alábbi példa az alakzat bélyegképének előállítását mutatja.
using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
IShape shape = presentation.Slides[0].Shapes[0];
using (IImage image = shape.GetImage())
{
image.Save("Shape_thumbnail_out.png", ImageFormat.Png);
}
}
Felhasználó által meghatározott méretezési tényezővel rendelkező bélyegkép előállítása
Az Aspose.Slides for .NET használatával bármely diaalakzat bélyegképét a következőképpen állíthatja elő:
- Hozzon létre egy példányt a
Presentationosztályból. - Szerezze be egy diának a hivatkozását az azonosítója vagy indexe alapján.
- Szerezze meg a hivatkozott dia bélyegkép‑képét az alakzat határainak figyelembevételével.
- Mentse el a bélyegkép képet bármilyen kívánt képtformátumba.
Az alábbi példa felhasználó által definiált méretezési tényezővel rendelkező bélyegképet mutat.
ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Shape;
float scale = 1; // Skálázás az X és Y tengelyek mentén.
using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
IShape shape = presentation.Slides[0].Shapes[0];
using (IImage image = shape.GetImage(bounds, scale, scale))
{
image.Save("Scaling Factor Thumbnail_out.png", ImageFormat.Png);
}
}
Határak alapú alakzat megjelenés bélyegkép létrehozása
Ez a módszer az alakzatok bélyegképeinek létrehozásához lehetővé teszi a fejlesztők számára, hogy az alakzat megjelenésének határain belül készítsenek bélyegképet. Figyelembe veszi az összes alakzati hatást. A létrehozott alakzat bélyegképét a dia határai korlátozzák. Bármely diaalakzat megjelenésének határain belüli bélyegkép előállításához használja az alábbi példakódot:
- Hozzon létre egy példányt a
Presentationosztályból. - Szerezze be egy diának a hivatkozását az azonosítója vagy indexe alapján.
- Szerezze meg a hivatkozott dia bélyegkép‑képét az alakzat határainak megjelenésként való használatával.
- Mentse el a bélyegkép képet bármilyen kívánt képtformátumba.
Az alábbi példa egy felhasználó által definiált méretezési tényezővel rendelkező bélyegképet hoz létre.
ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Appearance;
float scale = 1; // Skálázás az X és Y tengelyek mentén.
using (Presentation presentation = new Presentation("HelloWorld.pptx"))
{
IShape shape = presentation.Slides[0].Shapes[0];
using (IImage image = shape.GetImage(bounds, scale, scale))
{
image.Save("Shape_thumbnail_Bound_Shape_out.png", ImageFormat.Png);
}
}
Az alakzat tényleges vizuális határainak lekérdezése
Az IShape keretjellemzői — a X, Y, Width és Height tulajdonságai — leírják a prezentációs modellben tárolt téglalapot. A ténylegesen renderelt tartalom túlnyúlhat ezen a kereten, vagy egy másik tengelyre igazított téglalapot foglalhat el. A forgatás, körvonalak, nyílszárnyak, szöveg elrendezése és túlfutása, a generált SmartArt geometria és egyéb renderelési hatások mind módosíthatják a lefoglalt területet.
Használja a GetVisualBounds metódust az elfoglalt terület kiszámításához anélkül, hogy képet hozna létre. A metódus egy RectangleF objektumot ad vissza diakoordinátákban. A visszakapott téglalap nincs levágva a diára, ezért koordinátái negatívak lehetnek, ha a tartalom a dia eredete után is terjed.
A GetVisualBounds metódus jelenleg nincs deklarálva az IShape felületen. Ezért a diáról származó alakzatot a shape gyűjteményből tartsa interfész értékként, és csak a metódus hívásakor konvertálja.
A következő példa lekéri és összehasonlítja a keret- és vizuális határokat:
using var presentation = new Presentation("example.pptx");
var slide = presentation.Slides[0];
IShape shape = slide.Shapes[0];
var visualBounds = ((Shape)shape).GetVisualBounds();
var frameBounds = new RectangleF(shape.X, shape.Y, shape.Width, shape.Height);
Console.WriteLine($"Frame bounds: {frameBounds}");
Console.WriteLine($"Visual bounds: {visualBounds}");
Ugyanez a RectangleF felhasználható a közeli alakzatok Left, Right, Top vagy Bottom élhez igazításához; 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, forgatott alakzatok és csoportos alakzatok esetén, ahol a tárolt keret nem tükrözi a teljes renderelt eredményt.
Használja a GetVisualBounds metódust, ha elrendezési vagy validációs koordinátákra van szüksége, és nem szükséges bitmap. Használja az IShape.GetImage metódust, ha az alakzatot renderelni kell. A ShapeThumbnailBounds esetében a ShapeThumbnailBounds.Shape a kép méretét az alakzat határai alapján állítja be, beleértve a körvonalbeállításokat, míg a ShapeThumbnailBounds.Appearance az alakzat megjelenése alapján méretezi a képet, és a végeredményt a dia határaira korlátozza. Ezzel szemben a GetVisualBounds csak a kiszámított téglalapot adja vissza, és nem vágja le a diára.
GYIK
Milyen képt formátumok használhatók a alakzat bélyegképeinek mentésekor?
PNG, JPEG, BMP, GIF, TIFF, és egyebek. Az alakzatok exportálhatók vektoros SVG‑ként a tartalmuk SVG‑ként történő mentésével.
Mi a különbség a Shape és az Appearance határok között a bélyegkép renderelésekor?
Shape a forma geometriai adatait használja; Appearance a vizuális hatásokat (árnyékok, ragyogások stb.) veszi figyelembe.
Mi történik, ha egy alakzat rejtettként van megjelölve? Mégis rendereli a bélyegképként?
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 elemeket) menthető bélyegképként vagy SVG‑ként.
A rendszer által telepített betűtípusok befolyásolják a szöveg alakzatok bélyegképeinek minőségét?
Igen. Ajánlott a szükséges betűtípusok biztosítása (vagy a betűtípus-helyettesítések beállítása), hogy elkerülje a nem kívánt helyettesítéseket és a szöveg átrendeződését.