Mengonversi Slide Presentasi ke Gambar dalam PHP
Pendahuluan
Aspose.Slides for PHP via Java memungkinkan Anda dengan mudah mengonversi slide presentasi PowerPoint dan OpenDocument ke berbagai format gambar, termasuk BMP, PNG, JPG (JPEG), GIF, dan lainnya.
Untuk mengonversi slide menjadi gambar, ikuti langkah-langkah berikut:
- Tentukan pengaturan konversi yang diinginkan dan pilih slide yang ingin Anda ekspor dengan menggunakan:
- kelas TiffOptions, atau
- kelas RenderingOptions.
- Hasilkan gambar slide dengan memanggil metode getImage.
Di Aspose.Slides for PHP via Java, sebuah IImage adalah kelas yang memungkinkan Anda bekerja dengan gambar yang didefinisikan oleh data piksel. Anda dapat menggunakan kelas ini untuk menyimpan gambar dalam berbagai format (BMP, JPG, PNG, dll.).
Konversi Slide ke Bitmap dan Simpan Gambar dalam PNG
Anda dapat mengonversi slide menjadi objek bitmap dan menggunakannya langsung dalam aplikasi Anda. Atau, Anda dapat mengonversi slide menjadi bitmap dan kemudian menyimpan gambar dalam JPEG atau format lain yang diinginkan.
Kode ini menunjukkan cara mengonversi slide pertama dari presentasi menjadi objek bitmap dan kemudian menyimpan gambar dalam format PNG:
$presentation = new Presentation("Presentation.pptx");
try {
// Mengonversi slide pertama dalam presentasi menjadi bitmap.
$image = $presentation->getSlides()->get_Item(0)->getImage();
try {
// Menyimpan gambar dalam format PNG.
$image->save("Slide_0.png", ImageFormat::Png);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Konversi Slide ke Gambar dengan Ukuran Kustom
Anda mungkin perlu mendapatkan gambar dengan ukuran tertentu. Dengan menggunakan overload dari getImage, Anda dapat mengonversi slide menjadi gambar dengan dimensi spesifik (lebar dan tinggi).
Contoh kode ini menunjukkan cara melakukannya:
$imageSize = new Java("java.awt.Dimension", 1820, 1040);
$presentation = new Presentation("Presentation.pptx");
try {
// Mengonversi slide pertama dalam presentasi menjadi bitmap dengan ukuran yang ditentukan.
$image = $presentation->getSlides()->get_Item(0)->getImage($imageSize);
try {
// Menyimpan gambar dalam format JPEG.
$image->save("Slide_0.jpg", ImageFormat::Jpeg);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Konversi Slide dengan Catatan dan Komentar ke Gambar
Beberapa slide mungkin berisi catatan dan komentar.
Aspose.Slides menyediakan dua kelas TiffOptions dan RenderingOptions—yang memungkinkan Anda mengontrol render slide presentasi ke gambar. Kedua kelas menyertakan metode setSlidesLayoutOptions, yang memungkinkan Anda mengkonfigurasi render catatan dan komentar pada slide saat mengonversinya menjadi gambar.
Dengan kelas NotesCommentsLayoutingOptions, Anda dapat menentukan posisi yang diinginkan untuk catatan dan komentar dalam gambar yang dihasilkan.
Kode ini menunjukkan cara mengonversi slide dengan catatan dan komentar:
$scaleX = 2;
$scaleY = $scaleX;
$presentation = new Presentation("Presentation_with_notes_and_comments.pptx");
try {
$notesCommentsOptions = new NotesCommentsLayoutingOptions();
$notesCommentsOptions->setNotesPosition(NotesPositions::BottomTruncated); // Atur posisi catatan.
$notesCommentsOptions->setCommentsPosition(CommentsPositions::Right); // Atur posisi komentar.
$notesCommentsOptions->setCommentsAreaWidth(500); // Atur lebar area komentar.
$notesCommentsOptions->setCommentsAreaColor(java("java.awt.Color")->LIGHT_GRAY); // Atur warna area komentar.
// Buat opsi rendering.
$options = new RenderingOptions();
$options->setSlidesLayoutOptions($notesCommentsOptions);
// Konversi slide pertama dari presentasi menjadi gambar.
$image = $presentation->getSlides()->get_Item(0)->getImage($options, $scaleX, $scaleY);
try {
// Simpan gambar dalam format GIF.
$image->save("Image_with_notes_and_comments_0.gif", ImageFormat::Gif);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Note
Dalam proses konversi slide ke gambar apa pun, metode setNotesPosition tidak dapat menerapkanBottomFull (untuk menentukan posisi catatan) karena teks catatan mungkin terlalu besar, sehingga tidak dapat muat dalam ukuran gambar yang ditentukan.
Konversi Slide ke Gambar Menggunakan Opsi TIFF
Kelas TiffOptions memberikan kontrol lebih besar atas gambar TIFF yang dihasilkan dengan memungkinkan Anda menentukan parameter seperti ukuran, resolusi, palet warna, dan lainnya.
Kode ini menunjukkan proses konversi di mana opsi TIFF digunakan untuk menghasilkan gambar hitam-putih dengan resolusi 300 DPI dan ukuran 2160 × 2800:
// Muat file presentasi.
$presentation = new Presentation("sample.pptx");
try {
// Dapatkan slide pertama dari presentasi.
$slide = $presentation->getSlides()->get_Item(0);
// Konfigurasikan pengaturan gambar TIFF output.
$options = new TiffOptions();
$options->setImageSize(new Java("java.awt.Dimension", 2160, 2880)); // Atur ukuran gambar.
$options->setPixelFormat(ImagePixelFormat::Format1bppIndexed); // Atur format piksel (hitam putih).
$options->setDpiX(300); // Atur resolusi horizontal.
$options->setDpiY(300); // Atur resolusi vertikal.
// Konversi slide menjadi gambar dengan opsi yang ditentukan.
$image = $slide->getImage($options);
try {
// Simpan gambar dalam format TIFF.
$image->save("output.tiff", ImageFormat::Tiff);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Note
Dukungan TIFF tidak dijamin pada versi sebelumnya dari JDK 9.Konversi Semua Slide ke Gambar
Aspose.Slides memungkinkan Anda mengonversi semua slide dalam presentasi menjadi gambar, secara efektif mengubah seluruh presentasi menjadi serangkaian gambar.
Contoh kode ini menunjukkan cara mengonversi semua slide dalam presentasi menjadi gambar dalam PHP:
$scaleX = 2;
$scaleY = $scaleX;
$presentation = new Presentation("Presentation.pptx");
try {
// Render presentasi menjadi gambar slide demi slide.
for($i = 0; $i < java_values($presentation->getSlides()->size()) ; $i++) {
// Kendalikan slide tersembunyi (jangan render slide tersembunyi).
if (java_values($presentation->getSlides()->get_Item($i)->getHidden())) {
continue;
}
// Konversi slide menjadi gambar.
$image = $presentation->getSlides()->get_Item($i)->getImage($scaleX, $scaleY);
try {
// Simpan gambar dalam format JPEG.
$image->save("Slide_" . $i . ".jpg", ImageFormat::Jpeg);
} finally {
$image->dispose();
}
}
} finally {
$presentation->dispose();
}
FAQ
Apakah Aspose.Slides mendukung render slide dengan animasi?
Tidak, metode getImage hanya menyimpan gambar statis dari slide, tanpa animasi.
Bisakah slide tersembunyi diekspor sebagai gambar?
Ya, slide tersembunyi dapat diproses seperti slide biasa. Pastikan mereka termasuk dalam loop pemrosesan.
Apakah gambar dapat disimpan dengan bayangan dan efek?
Ya, Aspose.Slides mendukung render bayangan, transparansi, dan efek grafis lainnya ketika menyimpan slide sebagai gambar.