Opérations graphiques (C++/CLI)

Illustre la manipulation d’images à l’aide du Kit de développement logiciel (SDK) Windows.

Les rubriques suivantes illustrent l’utilisation de la System.Drawing.Image classe pour effectuer une manipulation d’image.

Afficher des images avec le .NET Framework

L’exemple de code suivant modifie le gestionnaire d’événements OnPaint pour récupérer un pointeur vers l’objet Graphics du formulaire principal. La OnPaint fonction est destinée à une application Windows Forms, probablement créée avec un Assistant Application Visual Studio.

L’image est représentée par la Image classe. Les données d’image sont chargées à partir d’un fichier .jpg à l’aide de la System.Drawing.Image.FromFile méthode. Avant que l’image soit dessinée dans le formulaire, le formulaire est redimensionné pour prendre en charge l’image. Le dessin de l’image est effectué avec la System.Drawing.Graphics.DrawImage méthode.

Les Graphics classes et Image les classes se trouvent dans l’espace System.Drawing de noms.

Exemple

#using <system.drawing.dll>

using namespace System;
using namespace System::Drawing;

protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe) override
{
    Graphics^ g = pe->Graphics;
    Image^ image = Image::FromFile("SampleImage.jpg");
    Form::ClientSize = image->Size;
    g->DrawImage( image, 0, 0, image->Size.Width, image->Size.Height );
}

Dessiner des formes avec le .NET Framework

L’exemple de code suivant utilise la Graphics classe pour modifier le OnPaint gestionnaire d’événements afin de récupérer un pointeur vers l’objet Graphics du formulaire principal. Ce pointeur est ensuite utilisé pour définir la couleur d’arrière-plan du formulaire et dessiner une ligne et un arc à l’aide des méthodes et DrawArc des System.Drawing.Graphics.DrawLine méthodes.

Exemple

#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
// ...
protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe ) override
{
   Graphics^ g = pe->Graphics;
   g->Clear(Color::AntiqueWhite);

   Rectangle rect = Form::ClientRectangle;
   Rectangle smallRect;
   smallRect.X = rect.X + rect.Width / 4;
   smallRect.Y = rect.Y + rect.Height / 4;
   smallRect.Width = rect.Width / 2;
   smallRect.Height = rect.Height / 2;

   Pen^ redPen = gcnew Pen(Color::Red);
   redPen->Width = 4;
   g->DrawLine(redPen, 0, 0, rect.Width, rect.Height);

   Pen^ bluePen = gcnew Pen(Color::Blue);
   bluePen->Width = 10;
   g->DrawArc( bluePen, smallRect, 90, 270 );
}

Faire pivoter des images avec .NET Framework

L’exemple de code suivant illustre l’utilisation de la System.Drawing.Image classe pour charger une image à partir du disque, la faire pivoter de 90 degrés et l’enregistrer sous la forme d’un nouveau fichier .jpg.

Exemple

#using <system.drawing.dll>

using namespace System;
using namespace System::Drawing;

int main()
{
   Image^ image = Image::FromFile("SampleImage.jpg");
   image->RotateFlip( RotateFlipType::Rotate90FlipNone );
   image->Save("SampleImage_rotated.jpg");
   return 0;
}

Convertir des formats de fichier image avec .NET Framework

L’exemple de code suivant illustre la System.Drawing.Image classe et l’énumération System.Drawing.Imaging.ImageFormat utilisées pour convertir et enregistrer des fichiers image. Le code suivant charge une image à partir d’un fichier .jpg, puis l’enregistre dans les formats de fichier .gif et .bmp.

Exemple

#using <system.drawing.dll>

using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;

int main()
{
   Image^ image = Image::FromFile("SampleImage.jpg");
   image->Save("SampleImage.png", ImageFormat::Png);
   image->Save("SampleImage.bmp", ImageFormat::Bmp);

   return 0;
}

Mise en route de la programmation graphique

À propos du code managé GDI+

Voir aussi

Programmation .NET avec C++/CLI (Visual C++)

System.Drawing