Convertir diapositivas de presentación a imágenes en C++
Visión general
Aspose.Slides for C++ le permite convertir fácilmente diapositivas de PowerPoint y presentaciones OpenDocument en varios formatos de imagen, incluidos BMP, PNG, JPG (JPEG), GIF y otros.
Para convertir una diapositiva en una imagen, siga estos pasos:
- Defina la configuración de conversión deseada y seleccione las diapositivas que desea exportar utilizando:
- La interfaz ITiffOptions , o
- La interfaz IRenderingOptions .
- Genere la imagen de la diapositiva llamando al método GetImage .
Un Bitmap es un objeto que le permite trabajar con imágenes definidas por datos de píxeles. Puede usar una instancia de esta clase para guardar imágenes en una amplia gama de formatos (BMP, JPG, PNG, etc.).
Convertir diapositivas a mapas de bits y guardar las imágenes en PNG
Puede convertir una diapositiva en un objeto bitmap y usarlo directamente en su aplicación. Alternativamente, puede convertir una diapositiva en un bitmap y luego guardar la imagen en JPEG o cualquier otro formato preferido.
Este código C++ muestra cómo convertir la primera diapositiva de una presentación en un objeto bitmap y luego guardar la imagen en formato PNG:
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Convertir la primera diapositiva de la presentación a un bitmap.
auto image = presentation->get_Slide(0)->GetImage();
// Guardar la imagen en formato PNG.
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
Convertir diapositivas a imágenes con tamaños personalizados
Puede que necesite obtener una imagen de un tamaño determinado. Usando una sobrecarga de GetImage , puede convertir una diapositiva en una imagen con dimensiones específicas (ancho y alto).
Este código de ejemplo muestra cómo hacerlo:
Size imageSize(1820, 1040);
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Convertir la primera diapositiva de la presentación a un bitmap con el tamaño especificado.
auto image = presentation->get_Slide(0)->GetImage(imageSize);
// Guardar la imagen en formato JPEG.
image->Save(u"Slide_0.jpg", ImageFormat::Jpeg);
image->Dispose();
presentation->Dispose();
Convertir diapositivas con notas y comentarios a imágenes
Algunas diapositivas pueden contener notas y comentarios.
Aspose.Slides proporciona dos interfaces—ITiffOptions y IRenderingOptions— que le permiten controlar la renderización de diapositivas de la presentación a imágenes. Ambas interfaces incluyen el método set_SlidesLayoutOptions, que le permite configurar la renderización de notas y comentarios en una diapositiva al convertirla a una imagen.
Con la clase NotesCommentsLayoutingOptions , puede especificar la posición preferida para notas y comentarios en la imagen resultante.
Este código C++ muestra cómo convertir una diapositiva con notas y comentarios:
float scaleX = 2;
float scaleY = scaleX;
// Cargar un archivo de presentación.
auto presentation = MakeObject<Presentation>(u"Presentation_with_notes_and_comments.pptx");
auto notesCommentsOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesCommentsOptions->set_NotesPosition(NotesPositions::BottomTruncated); // Establecer la posición de las notas.
notesCommentsOptions->set_CommentsPosition(CommentsPositions::Right); // Establecer la posición de los comentarios.
notesCommentsOptions->set_CommentsAreaWidth(500); // Establecer el ancho del área de comentarios.
notesCommentsOptions->set_CommentsAreaColor(Color::get_AntiqueWhite()); // Establecer el color del área de comentarios.
// Crear las opciones de renderizado.
auto options = MakeObject<RenderingOptions>();
options->set_SlidesLayoutOptions(notesCommentsOptions);
// Convertir la primera diapositiva de la presentación a una imagen.
auto image = presentation->get_Slide(0)->GetImage(options, scaleX, scaleY);
// Guardar la imagen en formato GIF.
image->Save(u"Image_with_notes_and_comments_0.gif", ImageFormat::Gif);
image->Dispose();
presentation->Dispose();
Nota
En cualquier proceso de conversión de diapositiva a imagen, el métodoset_NotesPosition no puede aplicar BottomFull (para especificar la posición de las notas) porque el texto de una nota puede ser demasiado grande, lo que impide que quepa dentro del tamaño de imagen especificado.
Convertir diapositivas a imágenes usando opciones TIFF
La interfaz ITiffOptions brinda un mayor control sobre la imagen TIFF resultante, permitiendo especificar parámetros como tamaño, resolución, paleta de colores y más.
Este código C++ muestra un proceso de conversión donde se utilizan opciones TIFF para generar una imagen en blanco y negro con una resolución de 300 DPI y un tamaño de 2160 × 2800:
// Cargar un archivo de presentación.
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// Obtener la primera diapositiva de la presentación.
auto slide = presentation->get_Slide(0);
// Configurar los ajustes de la imagen TIFF de salida.
auto tiffOptions = MakeObject<TiffOptions>();
tiffOptions->set_ImageSize(Size(2160, 2880)); // Establecer el tamaño de la imagen.
tiffOptions->set_PixelFormat(ImagePixelFormat::Format1bppIndexed); // Establecer el formato de píxel (blanco y negro).
tiffOptions->set_DpiX(300); // Establecer la resolución horizontal.
tiffOptions->set_DpiY(300); // Establecer la resolución vertical.
// Convertir la diapositiva a una imagen con las opciones especificadas.
auto image = slide->GetImage(tiffOptions);
// Guardar la imagen en formato TIFF.
image->Save(u"output.bmp", ImageFormat::Tiff);
image->Dispose();
presentation->Dispose();
Convertir todas las diapositivas a imágenes
Aspose.Slides le permite convertir todas las diapositivas de una presentación en imágenes, convirtiendo efectivamente toda la presentación en una serie de imágenes.
Este código de ejemplo muestra cómo convertir todas las diapositivas de una presentación en imágenes en C++:
float scaleX = 2;
float scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Renderizar la presentación a imágenes diapositiva por diapositiva.
for (int i = 0; i < presentation->get_Slides()->get_Count(); i++)
{
// Controlar diapositivas ocultas (no renderizar diapositivas ocultas).
if (presentation->get_Slide(i)->get_Hidden())
{
continue;
}
// Convertir la diapositiva a una imagen.
auto image = presentation->get_Slide(i)->GetImage(scaleX, scaleY);
// Guardar la imagen en formato JPEG.
image->Save(String::Format(u"Slide_{0}.jpg", i), ImageFormat::Jpeg);
image->Dispose();
}
presentation->Dispose();
Preguntas frecuentes
¿Aspose.Slides admite la renderización de diapositivas con animaciones?
No, el método GetImage guarda solo una imagen estática de la diapositiva, sin animaciones.
¿Se pueden exportar diapositivas ocultas como imágenes?
Sí, las diapositivas ocultas pueden procesarse igual que las normales. Simplemente asegúrese de que estén incluidas en el bucle de procesamiento.
¿Se pueden guardar imágenes con sombras y efectos?
Sí, Aspose.Slides admite la renderización de sombras, transparencias y otros efectos gráficos al guardar diapositivas como imágenes.