Converter Slides de Apresentação para Imagens em C++
Introdução
O Aspose.Slides for C++ permite converter facilmente slides de apresentações PowerPoint e OpenDocument em vários formatos de imagem, incluindo BMP, PNG, JPG (JPEG), GIF e outros.
Para converter um slide em uma imagem, siga estes passos:
- Defina as configurações de conversão desejadas e selecione os slides que deseja exportar usando:
- A ITiffOptions interface, ou
- A IRenderingOptions interface.
- Gere a imagem do slide chamando o método GetImage.
Um Bitmap é um objeto que permite trabalhar com imagens definidas por dados de pixel. Você pode usar uma instância desta classe para salvar imagens em uma ampla variedade de formatos (BMP, JPG, PNG, etc.).
Converter Slides em Bitmaps e Salvar as Imagens em PNG
Você pode converter um slide em um objeto bitmap e usá‑lo diretamente em sua aplicação. Alternativamente, pode converter um slide em um bitmap e então salvar a imagem em JPEG ou em qualquer outro formato preferido.
Este código C++ demonstra como converter o primeiro slide de uma apresentação em um objeto bitmap e, em seguida, salvar a imagem no formato PNG:
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Converta o primeiro slide da apresentação em um bitmap.
auto image = presentation->get_Slide(0)->GetImage();
// Salve a imagem no formato PNG.
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
presentation->Dispose();
Converter Slides em Imagens com Tamanhos Personalizados
Pode ser necessário obter uma imagem em um tamanho específico. Usando uma sobrecarga do GetImage, você pode converter um slide em uma imagem com dimensões específicas (largura e altura).
Este código de exemplo demonstra como fazer isso:
Size imageSize(1820, 1040);
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Converta o primeiro slide da apresentação em um bitmap com o tamanho especificado.
auto image = presentation->get_Slide(0)->GetImage(imageSize);
// Salve a imagem no formato JPEG.
image->Save(u"Slide_0.jpg", ImageFormat::Jpeg);
image->Dispose();
presentation->Dispose();
Converter Slides com Anotações e Comentários em Imagens
Alguns slides podem conter anotações e comentários.
Aspose.Slides fornece duas interfaces—ITiffOptions e IRenderingOptions—que permitem controlar a renderização dos slides de apresentação para imagens. Ambas as interfaces incluem o método set_SlidesLayoutOptions, que permite configurar a renderização de anotações e comentários em um slide ao convertê‑lo em imagem.
Com a classe NotesCommentsLayoutingOptions, você pode especificar a posição preferida para anotações e comentários na imagem resultante.
Este código C++ demonstra como converter um slide com anotações e comentários:
float scaleX = 2;
float scaleY = scaleX;
// Load a presentation file.
auto presentation = MakeObject<Presentation>(u"Presentation_with_notes_and_comments.pptx");
auto notesCommentsOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesCommentsOptions->set_NotesPosition(NotesPositions::BottomTruncated); // Defina a posição das notas.
notesCommentsOptions->set_CommentsPosition(CommentsPositions::Right); // Defina a posição dos comentários.
notesCommentsOptions->set_CommentsAreaWidth(500); // Defina a largura da área de comentários.
notesCommentsOptions->set_CommentsAreaColor(Color::get_AntiqueWhite()); // Defina a cor da área de comentários.
// Create the rendering options.
auto options = MakeObject<RenderingOptions>();
options->set_SlidesLayoutOptions(notesCommentsOptions);
// Convert the first slide of the presentation to an image.
auto image = presentation->get_Slide(0)->GetImage(options, scaleX, scaleY);
// Save the image in the GIF format.
image->Save(u"Image_with_notes_and_comments_0.gif", ImageFormat::Gif);
image->Dispose();
presentation->Dispose();
Note
Em qualquer processo de conversão de slide para imagem, o método set_NotesPosition não pode aplicarBottomFull (para especificar a posição das notas) porque o texto de uma nota pode ser muito grande, impossibilitando que caiba no tamanho de imagem especificado.
Converter Slides em Imagens Usando Opções TIFF
A interface ITiffOptions oferece maior controle sobre a imagem TIFF resultante, permitindo especificar parâmetros como tamanho, resolução, paleta de cores e mais.
Este código C++ demonstra um processo de conversão onde opções TIFF são usadas para gerar uma imagem preto‑e‑branco com resolução de 300 DPI e tamanho de 2160 × 2800:
// Carregue um arquivo de apresentação.
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// Obtenha o primeiro slide da apresentação.
auto slide = presentation->get_Slide(0);
// Configure as definições da imagem TIFF de saída.
auto tiffOptions = MakeObject<TiffOptions>();
tiffOptions->set_ImageSize(Size(2160, 2880)); // Defina o tamanho da imagem.
tiffOptions->set_PixelFormat(ImagePixelFormat::Format1bppIndexed); // Defina o formato de pixel (preto e branco).
tiffOptions->set_DpiX(300); // Defina a resolução horizontal.
tiffOptions->set_DpiY(300); // Defina a resolução vertical.
// Converta o slide em uma imagem com as opções especificadas.
auto image = slide->GetImage(tiffOptions);
// Salve a imagem no formato TIFF.
image->Save(u"output.bmp", ImageFormat::Tiff);
image->Dispose();
presentation->Dispose();
Converter Todos os Slides em Imagens
Aspose.Slides permite converter todos os slides de uma apresentação em imagens, transformando efetivamente toda a apresentação em uma série de imagens.
Este código de exemplo demonstra como converter todos os slides de uma apresentação em imagens em C++:
float scaleX = 2;
float scaleY = scaleX;
auto presentation = MakeObject<Presentation>(u"Presentation.pptx");
// Renderize a apresentação em imagens slide por slide.
for (int i = 0; i < presentation->get_Slides()->get_Count(); i++)
{
// Controle slides ocultos (não renderize slides ocultos).
if (presentation->get_Slide(i)->get_Hidden())
{
continue;
}
// Converta o slide em uma imagem.
auto image = presentation->get_Slide(i)->GetImage(scaleX, scaleY);
// Salve a imagem no formato JPEG.
image->Save(String::Format(u"Slide_{0}.jpg", i), ImageFormat::Jpeg);
image->Dispose();
}
presentation->Dispose();
FAQ
O Aspose.Slides oferece suporte à renderização de slides com animações?
Não, o método GetImage salva apenas uma imagem estática do slide, sem animações.
Slides ocultos podem ser exportados como imagens?
Sim, slides ocultos podem ser processados como os regulares. Apenas certifique‑se de que eles estejam incluídos no loop de processamento.
Imagens podem ser salvas com sombras e efeitos?
Sim, o Aspose.Slides oferece suporte à renderização de sombras, transparência e outros efeitos gráficos ao salvar slides como imagens.