Buat Thumbnail Bentuk Presentasi di .NET

Pendahuluan

Aspose.Slides for .NET digunakan untuk membuat file presentasi dimana setiap halaman adalah slide. Slide tersebut dapat dilihat dengan membuka file presentasi menggunakan Microsoft PowerPoint. Namun terkadang, pengembang mungkin perlu melihat gambar bentuk secara terpisah di penampil gambar. Dalam kasus seperti itu, Aspose.Slides for .NET membantu Anda menghasilkan gambar mini (thumbnail) bentuk slide. Cara menggunakan fitur ini dijelaskan dalam artikel ini. Artikel ini menjelaskan cara menghasilkan thumbnail slide dengan berbagai cara:

  • Menghasilkan thumbnail bentuk di dalam slide.
  • Menghasilkan thumbnail bentuk untuk bentuk slide dengan dimensi yang ditentukan pengguna.
  • Menghasilkan thumbnail bentuk dalam batas tampilan bentuk.

Menghasilkan Thumbnail Bentuk dari Slide

Untuk menghasilkan thumbnail bentuk dari slide mana pun menggunakan Aspose.Slides for .NET:

  1. Buat instance kelas Presentasi.
  2. Dapatkan referensi slide mana pun menggunakan ID atau indeksnya.
  3. Dapatkan gambar thumbnail bentuk dari slide yang direferensikan dengan skala default.
  4. Simpan gambar thumbnail ke format gambar yang diinginkan.

Contoh di bawah menghasilkan thumbnail bentuk.

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);
    }
}

Menghasilkan Thumbnail dengan Faktor Skala yang Ditentukan Pengguna

Untuk menghasilkan thumbnail bentuk dari bentuk slide mana pun menggunakan Aspose.Slides for .NET:

  1. Buat instance kelas Presentation.
  2. Dapatkan referensi slide mana pun menggunakan ID atau indeksnya.
  3. Dapatkan gambar thumbnail slide yang direferensikan dengan batas bentuk.
  4. Simpan gambar thumbnail dalam format gambar yang diinginkan.

Contoh di bawah menghasilkan thumbnail dengan faktor skala yang ditentukan pengguna.

ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Shape;
float scale = 1; // Skala pada sumbu X dan Y.

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);
    }
}

Membuat Thumbnail Penampilan Bentuk Berdasarkan Batas

Metode ini untuk membuat thumbnail bentuk memungkinkan pengembang menghasilkan thumbnail dalam batas penampilan bentuk. Metode ini memperhitungkan semua efek bentuk. Thumbnail bentuk yang dihasilkan dibatasi oleh batas slide. Untuk menghasilkan thumbnail bentuk slide apa pun dalam batas penampilannya, gunakan kode contoh berikut:

  1. Buat instance kelas Presentation.
  2. Dapatkan referensi slide mana pun menggunakan ID atau indeksnya.
  3. Dapatkan gambar thumbnail slide yang direferensikan dengan batas bentuk sebagai penampilan.
  4. Simpan gambar thumbnail dalam format gambar yang diinginkan.

Contoh di bawah membuat thumbnail dengan menghasilkan thumbnail dengan faktor skala yang ditentukan pengguna.

ShapeThumbnailBounds bounds = ShapeThumbnailBounds.Appearance;
float scale = 1; // Skala pada sumbu X dan Y.

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);
    }
}

Mendapatkan Batas Visual Aktual Sebuah Bentuk

Properti bingkai dari IShape—properti X, Y, Width, dan Height—menjelaskan persegi panjang yang disimpan dalam model presentasi. Konten yang sebenarnya dirender dapat melampaui bingkai tersebut atau menempati persegi panjang berorientasi sumbu yang berbeda. Rotasi, outline, kepala panah, tata letak teks dan overflow, geometri SmartArt yang dihasilkan, dan efek rendering lainnya dapat mengubah area yang ditempati.

Gunakan GetVisualBounds untuk menghitung area yang ditempati tanpa membuat gambar. Metode ini mengembalikan sebuah RectangleF dalam koordinat slide. Persegi panjang yang dikembalikan tidak dipotong ke slide, sehingga koordinatnya dapat negatif ketika konten melampaui asal slide.

GetVisualBounds saat ini tidak dideklarasikan oleh antarmuka IShape. Oleh karena itu, pertahankan bentuk yang diambil dari koleksi bentuk slide sebagai nilai antarmuka dan lakukan cast hanya saat memanggil metode tersebut.

Contoh berikut mengambil dan membandingkan bingkai serta batas visual:

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}");

RectangleF yang sama dapat digunakan untuk menyelaraskan bentuk-bentuk terdekat ke tepi Left, Right, Top, atau Bottom‑nya; menyediakan ruang yang cukup dalam tata letak yang dihasilkan; atau mendeteksi konten di luar wilayah yang diizinkan. Batas visual sangat berguna untuk SmartArt, kotak teks, panah, gambar, bentuk yang diputar, dan grup bentuk, dimana bingkai yang disimpan mungkin tidak menggambarkan hasil rendering penuh.

Gunakan GetVisualBounds ketika Anda membutuhkan koordinat untuk tata letak atau validasi dan tidak memerlukan bitmap. Gunakan IShape.GetImage ketika Anda perlu merender bentuk. Dengan ShapeThumbnailBounds, ShapeThumbnailBounds.Shape menyesuaikan ukuran gambar dari batas bentuk, termasuk pengaturan outline, sementara ShapeThumbnailBounds.Appearance menyesuaikan dari penampilan bentuk dan membatasi hasil ke batas slide. Sebaliknya, GetVisualBounds hanya mengembalikan persegi panjang yang dihitung dan tidak memotongnya ke slide.

FAQ

Format gambar apa yang dapat digunakan saat menyimpan thumbnail bentuk?

PNG, JPEG, BMP, GIF, TIFF, dan lainnya. Bentuk juga dapat diekspor sebagai SVG vektor dengan menyimpan konten bentuk sebagai SVG.

Apa perbedaan antara batas Shape dan Appearance saat merender thumbnail?

Shape menggunakan geometri bentuk; Appearance memperhitungkan efek visual (bayangan, cahaya, dll.).

Apa yang terjadi jika sebuah bentuk ditandai sebagai tersembunyi? Apakah tetap dapat dirender sebagai thumbnail?

Bentuk tersembunyi tetap menjadi bagian dari model dan dapat dirender; bendera tersembunyi memengaruhi tampilan slide show tetapi tidak mencegah pembuatan gambar bentuk.

Apakah grup bentuk, bagan, SmartArt, dan objek kompleks lainnya didukung?

Ya. Objek apa pun yang direpresentasikan sebagai Shape (termasuk GroupShape, Chart, dan SmartArt) dapat disimpan sebagai thumbnail atau sebagai SVG.

Apakah font yang diinstal sistem memengaruhi kualitas thumbnail untuk bentuk teks?

Ya. Anda harus menyediakan font yang diperlukan (atau mengonfigurasi substitusi font) untuk menghindari fallback yang tidak diinginkan dan perataan ulang teks.