Mengonversi Slide Presentasi ke Gambar di .NET

Pendahuluan

Aspose.Slides for .NET dapat merender slide individu dari presentasi PowerPoint dan OpenDocument sebagai PNG, JPEG, GIF, TIFF, dan format gambar lainnya.

Untuk mengonversi slide menjadi gambar, ikuti langkah‑langs berikut:

  1. Muat presentasi dengan kelas Presentation.
  2. Pilih slide yang ingin Anda render.
  3. Jika diperlukan, konfigurasikan rendering dengan kelas RenderingOptions atau TiffOptions.
  4. Panggil metode GetImage. Metode ini mengembalikan objek IImage.
  5. Panggil metode IImage.Save dan tentukan format output dengan nilai ImageFormat.

Mengonversi Slide ke Gambar PNG

Konversi paling sederhana menggunakan pengaturan rendering default. Objek IImage yang dihasilkan dapat diproses di memori atau disimpan ke file.

Contoh C# berikut merender slide pertama dan menyimpannya sebagai gambar PNG:

using Aspose.Slides;

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage();
image.Save("Slide_0.png", ImageFormat.Png);

Mengonversi Slide ke Gambar dengan Ukuran Kustom

Gunakan overload GetImage yang menerima nilai Size untuk merender slide dengan dimensi piksel yang tepat.

Contoh berikut membuat gambar JPEG 1820 × 1040:

using System.Drawing;
using Aspose.Slides;

var imageSize = new Size(1820, 1040);

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(imageSize);
image.Save("Slide_0.jpg", ImageFormat.Jpeg);

Mengonversi Slide dengan Catatan dan Komentar ke Gambar

Secara default, gambar slide tidak menyertakan catatan atau komentar. Tetapkan objek NotesCommentsLayoutingOptions ke properti RenderingOptions.SlidesLayoutOptions untuk mengontrol di mana catatan dan komentar muncul.

Contoh berikut menempatkan catatan yang dipotong di bawah slide dan komentar di sebelah kanannya:

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;

var scaleX = 2f;
var scaleY = scaleX;

var layoutOptions = new NotesCommentsLayoutingOptions
{
    NotesPosition = NotesPositions.BottomTruncated,
    CommentsPosition = CommentsPositions.Right,
    CommentsAreaWidth = 500,
    CommentsAreaColor = Color.AntiqueWhite
};

var renderingOptions = new RenderingOptions { SlidesLayoutOptions = layoutOptions };

using var presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(renderingOptions, scaleX, scaleY);
image.Save("Image_with_notes_and_comments_0.gif", ImageFormat.Gif);

Mengonversi Slide ke Gambar Menggunakan Opsi TIFF

Kelas TiffOptions memungkinkan Anda mengontrol ukuran, resolusi, dan properti lainnya dari gambar TIFF yang dirender.

Contoh berikut merender slide pertama sebagai gambar TIFF 2160 × 2880 dengan 300 DPI:

using System.Drawing;
using Aspose.Slides;
using Aspose.Slides.Export;

var tiffOptions = new TiffOptions
{
    ImageSize = new Size(2160, 2880),
    DpiX = 300,
    DpiY = 300
};

using var presentation = new Presentation("sample.pptx");
var slide = presentation.Slides[0];

using var image = slide.GetImage(tiffOptions);
image.Save("output.tiff", ImageFormat.Tiff);

Mengonversi Semua Slide ke Gambar

Iterasikan koleksi slide untuk mengonversi seluruh presentasi menjadi serangkaian gambar. Slide tersembunyi termasuk kecuali Anda secara eksplisit melewatinya.

Contoh berikut merender setiap slide sebagai gambar JPEG dengan faktor skala horizontal dan vertikal sebesar 2:

using Aspose.Slides;

var scaleX = 2f;
var scaleY = scaleX;

using var presentation = new Presentation("Presentation.pptx");

var slideCount = presentation.Slides.Count;
for (var index = 0; index < slideCount; index++)
{
    var slide = presentation.Slides[index];
    using var image = slide.GetImage(scaleX, scaleY);
    image.Save($"Slide_{index}.jpg", ImageFormat.Jpeg);
}

Membuat Output Metafile Ditingkatkan

Enhanced Metafile (EMF) berguna ketika grafik berbasis vektor harus dipertukarkan dengan Microsoft Office atau aplikasi Windows lain yang mendukung metafile Windows. Tidak seperti gambar berbasis piksel, EMF dapat mempertahankan operasi gambar vektor yang dapat diskalakan tanpa kehilangan ketajaman yang sama. Namun, EMF terutama merupakan format kompatibilitas untuk aplikasi dengan dukungan metafile Windows, bukan format pertukaran universal. Selain itu, konten slide yang kompleks, seperti gambar bitmap dan beberapa efek, dapat disimpan sebagai elemen raster di dalam kontainer metafile vektor.

Ekspor Slide ke EMF

Metode ISlide.WriteAsEmf menulis ISlide ke aliran target dalam format EMF. Contoh berikut memuat presentasi, memilih slide pertama, dan menulisnya ke aliran file EMF:

using System.IO;
using Aspose.Slides;

using var presentation = new Presentation("Presentation.pptx");
var slide = presentation.Slides[0];

using var emfStream = File.Create("Slide_0.emf");
slide.WriteAsEmf(emfStream);

Pemanggil memiliki aliran yang diteruskan ke ISlide.WriteAsEmf dan harus menutup atau membuangnya. Aspose.Slides menulis pada posisi saat ini dari aliran dan membiarkan aliran tetap terbuka.

Mengonversi Gambar SVG ke EMF dan Menambahkannya ke Presentasi

Gunakan ISvgImage.WriteAsEmf untuk mengonversi konten SVG ke EMF. Byte yang dihasilkan dapat ditambahkan ke presentasi melalui IImageCollection.AddImage dan ditempatkan pada slide dengan IShapeCollection.AddPictureFrame.

Contoh berikut membuat SvgImage dari markup SVG, mengonversinya ke EMF dalam memori, menyisipkan metafile pada slide pertama, dan menyimpan presentasi:

using System.IO;
using Aspose.Slides;
using Aspose.Slides.Export;

var svgContent = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"100\"><rect width=\"200\" height=\"100\" fill=\"#4472C4\"/></svg>";
var svgImage = new SvgImage(svgContent);

using var presentation = new Presentation();
var slide = presentation.Slides[0];

using var emfStream = new MemoryStream();
svgImage.WriteAsEmf(emfStream);

emfStream.Position = 0;
var image = presentation.Images.AddImage(emfStream);
slide.Shapes.AddPictureFrame(ShapeType.Rectangle, 20, 20, 200, 100, image);

presentation.Save("Presentation_with_emf.pptx", SaveFormat.Pptx);

ISvgImage.WriteAsEmf tidak mengambil kepemilikan aliran tujuan. Setelah menulis, posisi aliran berada di akhir data yang dihasilkan. Reset Position ke awal sebelum meneruskan aliran yang dapat dicari ke pembaca, seperti yang ditunjukkan di atas. Pertahankan aliran terbuka sampai konsumen selesai membacanya, dan buang setelahnya. Alternatifnya, panggil ToArray dan berikan array byte yang dikembalikan ke IImageCollection.AddImage; ToArray mengembalikan buffer lengkap terlepas dari posisi aliran saat ini.

Generasi EMF tersedia pada sistem operasi yang didukung oleh build Aspose.Slides untuk .NET yang dipilih, tetapi rendering dapat berbeda antar platform ketika font atau ketergantungan grafik native tidak tersedia. Instal font yang digunakan oleh konten sumber atau konfigurasikan substitusi yang sesuai, ikuti platform requirements untuk paket Aspose.Slides Anda, dan validasi hasilnya di aplikasi tujuan yang mengkonsumsi EMF. Aplikasi Linux dan macOS sering memiliki dukungan terbatas atau tidak konsisten untuk menampilkan dan mengedit metafile Windows.

Rendering Emoji Berwarna

FAQ

Apakah Aspose.Slides mendukung rendering slide dengan animasi?

Tidak. Metode GetImage merender gambar statis slide dan tidak mengekspor animasi.

Apakah slide tersembunyi dapat diekspor sebagai gambar?

Ya. Slide tersembunyi dapat dirender seperti slide biasa. Termasuk mereka dalam loop pemrosesan, seperti contoh di atas.

Apakah bayangan dan efek lain dipertahankan dalam gambar slide?

Ya. Aspose.Slides merender bayangan, transparansi, dan efek grafis lain yang didukung dalam gambar slide.