グラフィック操作 (C++/CLI)

Windows SDK を使用したイメージの操作について説明します。

次のトピックでは、System.Drawing.Image クラスを使用してイメージ操作を実行する方法を説明します。

.NET Framework を使用してイメージを表示する

次のコード例では、OnPaint イベント ハンドラーを変更して、メイン フォームの Graphics オブジェクトへのポインターを取得します。 OnPaint 関数は、Windows フォーム アプリケーション (ほとんどの場合、Visual Studio アプリケーション ウィザードを使用して作成される) を対象とします。

画像は Image クラスで表されます。 画像データは、.jpg ファイルから System.Drawing.Image.FromFile メソッドを使用して読み込まれます。 イメージがフォームに描画される前に、イメージに合うようにフォームのサイズが変更されます。 画像の描画は、System.Drawing.Graphics.DrawImage メソッドを使用して実行されます。

Graphics クラスと Image クラスはどちらも System.Drawing 名前空間にあります。

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

.NET Framework を使用して形状を描画する

次のコード例では、Graphics クラスを使用して、OnPaint イベント ハンドラーを変更し、メイン フォームの Graphics オブジェクトへのポインターを取得します。 次に、このポインターを使用して、フォームの背景色を設定し、System.Drawing.Graphics.DrawLine メソッドと DrawArc メソッドを使用して線と円弧を描画します。

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

.NET Framework を使用してイメージを回転する

次のコード例では、画像をディスクから読み込み、90 度回転してから新しい .jpg ファイルとして保存する、System.Drawing.Image クラスの使用方法を示します。

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

.NET Framework を使用してイメージ ファイル形式を変換する

次のコード例では、画像ファイルの変換と保存に使用する、System.Drawing.Image クラスと System.Drawing.Imaging.ImageFormat 列挙型を示します。 このコードでは、イメージを .jpg ファイルから読み込み、.gif ファイル形式と .bmp ファイル形式の両方で保存します。

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

グラフィックス プログラミングについて

GDI+ マネージド コードについて

関連項目

C++/CLI (Visual C++) による .NET プログラミング

System.Drawing