Condividi tramite


Operazioni di grafica (C++/CLI)

Illustra la manipolazione delle immagini con Windows SDK.

Gli argomenti seguenti dimostrano l'uso della classe System.Drawing.Image per eseguire la manipolazione delle immagini.

Visualizzare immagini con .NET Framework

Nell'esempio di codice seguente viene modificato il gestore eventi OnPaint per recuperare un puntatore all'oggetto Graphics per il modulo principale. La OnPaint funzione è destinata a un'applicazione Windows Form, probabilmente creata con una procedura guidata dell'applicazione di Visual Studio.

L'immagine è rappresentata dalla Image classe . I dati dell'immagine vengono caricati da un file .jpg usando il System.Drawing.Image.FromFile metodo . Prima che l'immagine venga disegnata nel form, il modulo viene ridimensionato in modo da contenere l'immagine. Il disegno dell'immagine viene eseguito con il System.Drawing.Graphics.DrawImage metodo .

Le classi Graphics e Image sono entrambe nello spazio dei nomi System.Drawing.

Esempio

#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 );
}

Disegnare forme con .NET Framework

Nell'esempio di codice seguente, la classe Graphics viene utilizzata per modificare il gestore eventi OnPaint al fine di recuperare un puntatore all'oggetto Graphics per il form principale. Questo puntatore viene quindi utilizzato per impostare il colore di sfondo della maschera e disegnare una linea e un arco utilizzando i metodi System.Drawing.Graphics.DrawLine e DrawArc.

Esempio

#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 );
}

Ruotare le immagini con .NET Framework

Nell'esempio di codice seguente viene illustrato l'uso della System.Drawing.Image classe per caricare un'immagine dal disco, ruotarla di 90 gradi e salvarla come nuovo file .jpg.

Esempio

#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;
}

Convertire i formati di file di immagine con .NET Framework

Nell'esempio di codice seguente viene illustrata la System.Drawing.Image classe e l'enumerazione System.Drawing.Imaging.ImageFormat usata per convertire e salvare i file di immagine. Il codice seguente carica un'immagine da un file .jpg e quindi la salva in formati di file .gif e .bmp.

Esempio

#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;
}

Introduzione alla programmazione grafica

Informazioni sul codice gestito GDI+

Vedi anche

Programmazione .NET con C++/CLI (Visual C++)

System.Drawing