Condividi tramite


Operazioni di grafica (C++/CLI)

Illustra la manipolazione delle immagini con Windows SDK.

Negli argomenti seguenti viene illustrato l'uso della classe per eseguire la System.Drawing.Image 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 la maschera 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 con estensione 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 Graphics classi e Image sono entrambe nello spazio dei System.Drawing nomi .

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 viene utilizzata la Graphics classe per modificare il OnPaint gestore eventi per recuperare un puntatore all'oggetto Graphics per la maschera principale. Questo puntatore viene quindi utilizzato per impostare il colore di sfondo della maschera e disegnare una linea e un arco utilizzando i System.Drawing.Graphics.DrawLine metodi 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 con estensione 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