Convertir une diapositive
Aspose.Slides pour C++ vous permet de convertir des diapositives (dans des présentations) en images. Voici les formats d’image pris en charge : BMP, PNG, JPG (JPEG), GIF, et d’autres.
Pour convertir une diapositive en image, procédez comme suit :
-
Tout d’abord, définissez les paramètres de conversion et les objets de diapositive à convertir en utilisant :
- l’interface ITiffOptions ou
- l’interface IRenderingOptions.
-
Deuxièmement, convertissez la diapositive en image en utilisant la méthode GetImage.
À propos du Bitmap et d’autres formats d’image
Un Bitmap est un objet qui vous permet de travailler avec des images définies par des données de pixels. Vous pouvez utiliser une instance de cette classe pour enregistrer des images dans une large gamme de formats (BMP, JPG, PNG, etc.).
Info
Aspose a récemment développé un convertisseur en ligne Text to GIF.Conversion des diapositives en Bitmap et enregistrement des images en PNG
Ce code C++ vous montre comment convertir la première diapositive d’une présentation en un objet bitmap, puis comment enregistrer l’image au format PNG :
auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");
// Convertit la première diapositive de la présentation en un objet Bitmap
System::SharedPtr<IImage> image = pres->get_Slide(0)->GetImage();
// Enregistre l'image au format PNG
image->Save(u"Slide_0.png", ImageFormat::Png);
Astuce
Vous pouvez convertir une diapositive en un objet bitmap, puis utiliser l’objet directement quelque part. Ou vous pouvez convertir une diapositive en bitmap et ensuite enregistrer l’image en JPEG ou dans tout autre format de votre choix.Conversion des diapositives en images avec des tailles personnalisées
Vous pourriez avoir besoin d’obtenir une image d’une certaine taille. En utilisant un surchargement de GetImage, vous pouvez convertir une diapositive en image avec des dimensions spécifiques (longueur et largeur).
Ce code d’exemple démontre la conversion proposée en utilisant la méthode GetImage en C++ :
auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");
// Convertit la première diapositive de la présentation en un Bitmap avec la taille spécifiée
auto image = pres->get_Slide(0)->GetImage(Size(1820, 1040));
// Enregistre l'image au format JPEG
image->Save(u"Slide_0.jpg", ImageFormat::Jpeg);
Conversion des diapositives avec notes et commentaires en images
Certaines diapositives contiennent des notes et des commentaires.
Aspose.Slides fournit deux interfaces—ITiffOptions et IRenderingOptions—qui vous permettent de contrôler le rendu des diapositives de présentation en images. Les deux interfaces contiennent l’interface INotesCommentsLayoutingOptions qui vous permet d’ajouter des notes et des commentaires sur une diapositive lorsque vous convertissez cette diapositive en image.
Info
Avec l’interface INotesCommentsLayoutingOptions, vous pouvez spécifier votre position préférée pour les notes et les commentaires dans l’image résultante.Ce code C++ démontre le processus de conversion d’une diapositive avec des notes et des commentaires :
auto pres = System::MakeObject<Presentation>(u"PresentationNotesComments.pptx");
// Crée les options de rendu
auto options = System::MakeObject<RenderingOptions>();
auto notesCommentsLayouting = options->get_NotesCommentsLayouting();
// Définit la position des notes sur la page
notesCommentsLayouting->set_NotesPosition(NotesPositions::BottomTruncated);
// Définit la position des commentaires sur la page
notesCommentsLayouting->set_CommentsPosition(CommentsPositions::Right);
// Définit la largeur de la zone de sortie des commentaires
notesCommentsLayouting->set_CommentsAreaWidth(500);
// Définit la couleur de la zone des commentaires
notesCommentsLayouting->set_CommentsAreaColor(Color::get_AntiqueWhite());
// Convertit la première diapositive de la présentation en un objet Bitmap
auto image = pres->get_Slide(0)->GetImage(options, 2.f, 2.f);
// Enregistre l'image au format GIF
image->Save(u"Slide_Notes_Comments_0.gif", ImageFormat::Gif);
Note
Dans tout processus de conversion de diapositive en image, vous ne pouvez pas passer la valeur BottomFull (pour spécifier la position des notes) à la méthode set_NotesPositions() car le texte d’une note peut être long, ce qui signifie qu’il pourrait ne pas s’adapter à la taille d’image spécifiée.Conversion des diapositives en images en utilisant ITiffOptions
L’interface ITiffOptions vous donne plus de contrôle (en termes de paramètres) sur l’image résultante. En utilisant cette interface, vous pouvez spécifier la taille, la résolution, la palette de couleurs, et d’autres paramètres pour l’image résultante.
Ce code C++ démontre un processus de conversion où ITiffOptions est utilisé pour produire une image en noir et blanc avec une résolution de 300 dpi et une taille de 2160 × 2800 :
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"PresentationNotesComments.pptx");
// Obtient une diapositive par son index
System::SharedPtr<ISlide> slide = pres->get_Slide(0);
// Crée un objet TiffOptions
System::SharedPtr<TiffOptions> options = System::MakeObject<TiffOptions>();
options->set_ImageSize(Size(2160, 2880));
// Définit la police utilisée en cas de police source non trouvée
options->set_DefaultRegularFont(u"Arial Black");
// Définit la position des notes sur la page
options->get_NotesCommentsLayouting()->set_NotesPosition(NotesPositions::BottomTruncated);
// Définit le format de pixel (noir et blanc)
options->set_PixelFormat(ImagePixelFormat::Format1bppIndexed);
// Définit la résolution
options->set_DpiX(300);
options->set_DpiY(300);
// Convertit la diapositive en un objet Bitmap
System::SharedPtr<Bitmap> image = slide->GetImage(options);
// Enregistre l'image au format BMP
image->Save(u"PresentationNotesComments.bmp", ImageFormat::Tiff);
Conversion de toutes les diapositives en images
Aspose.Slides vous permet de convertir toutes les diapositives d’une seule présentation en images. Essentiellement, vous pouvez convertir la présentation (dans son intégralité) en images.
Ce code d’exemple vous montre comment convertir toutes les diapositives d’une présentation en images en C++ :
// Chemin vers le répertoire de sortie
System::String outputDir = u"D:\\PresentationImages";
auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");
// Rendre la présentation en un tableau d'images diapositive par diapositive
for (int32_t i = 0; i < pres->get_Slides()->get_Count(); i++)
{
// Contrôle des diapositives cachées (ne pas rendre les diapositives cachées)
if (pres->get_Slide(i)->get_Hidden())
{
continue;
}
// Convertit la diapositive en un objet Bitmap
auto image = pres->get_Slide(i)->GetImage(2.f, 2.f);
// Crée un nom de fichier pour une image
auto outputFilePath = Path::Combine(outputDir, String(u"Slide_") + i + u".jpg");
// Enregistre l'image au format PNG
image->Save(outputFilePath, ImageFormat::Png);
}