方法: 描画する Graphics オブジェクトを作成する

GDI+ を使用して、線や図形の描画、テキストのレンダリング、イメージの表示と操作を行うには、まず Graphics オブジェクトを作成する必要があります。 Graphics オブジェクトは GDI+ の描画サーフェイスを表し、グラフィック画像を作成するために使用されるオブジェクトです。

グラフィックスを操作するには、次の 2 つの手順を行います。

  1. Graphics オブジェクトを作成する。

  2. Graphics オブジェクトを使用して、線や図形の描画、テキストのレンダリング、イメージの表示と操作を行う。

グラフィックス オブジェクトを作成する

グラフィックス オブジェクトは、さまざまな方法で作成できます。

グラフィックス オブジェクトを作成するには

  • グラフィックス オブジェクトへの参照は、フォームまたはコントロールの Paint イベントの PaintEventArgs の一部として受け取ります。 これは、通常、コントロールの描画コードを作成するときに、グラフィックス オブジェクトへの参照を取得する方法です。 同様に、PrintDocumentPrintPage イベントを処理するときに、PrintPageEventArgs のプロパティとしてグラフィックス オブジェクトを取得することもできます。

    \- または -

  • コントロールまたはフォームの CreateGraphics メソッドを呼び出して、そのコントロールまたはフォームの描画サーフェイスを表す Graphics オブジェクトへの参照を取得します。 既に存在するフォームまたはコントロールの上に描画する場合は、このメソッドを使用します。

    \- または -

  • Image から継承する任意のオブジェクトから Graphics オブジェクトを作成します。 この方法は、既存のイメージを変更する場合に便利です。

    以降のセクションで、これらの各プロセスについて詳しく説明します。

描画イベント ハンドラーの PaintEventArgs

コントロールの PaintEventHandler または PrintDocumentPrintPage をプログラミングするとき、グラフィックス オブジェクトは PaintEventArgs または PrintPageEventArgs のプロパティの 1 つとして提供されます。

描画イベントの PaintEventArgs から Graphics オブジェクトへの参照を取得するには

  1. Graphics オブジェクトを宣言します。

  2. PaintEventArgs の一部として渡される Graphics オブジェクトを参照するように変数を割り当てます。

  3. フォームまたはコントロールを描画するコードを挿入します。

    次の例は、Paint イベントで PaintEventArgs から Graphics オブジェクトを参照する方法を示しています。

    Private Sub Form1_Paint(sender As Object, pe As PaintEventArgs) Handles _  
       MyBase.Paint  
       ' Declares the Graphics object and sets it to the Graphics object  
       ' supplied in the PaintEventArgs.  
       Dim g As Graphics = pe.Graphics  
       ' Insert code to paint the form here.  
    End Sub  
    
    private void Form1_Paint(object sender,
       System.Windows.Forms.PaintEventArgs pe)
    {  
       // Declares the Graphics object and sets it to the Graphics object  
       // supplied in the PaintEventArgs.  
       Graphics g = pe.Graphics;  
       // Insert code to paint the form here.  
    }  
    
    private:  
       void Form1_Paint(System::Object ^ sender,  
          System::Windows::Forms::PaintEventArgs ^ pe)  
       {  
          // Declares the Graphics object and sets it to the Graphics object  
          // supplied in the PaintEventArgs.  
          Graphics ^ g = pe->Graphics;  
          // Insert code to paint the form here.  
       }  
    

CreateGraphics メソッド

コントロールまたはフォームの CreateGraphics メソッドを使用して、そのコントロールまたはフォームの描画サーフェイスを表す Graphics オブジェクトへの参照を取得することもできます。

CreateGraphics メソッドを使用して Graphics オブジェクトを作成するには

  • グラフィックスをレンダリングするフォームまたはコントロールの CreateGraphics メソッドを呼び出します。

    Dim g as Graphics  
    ' Sets g to a Graphics object representing the drawing surface of the  
    ' control or form g is a member of.  
    g = Me.CreateGraphics  
    
    Graphics g;  
    // Sets g to a graphics object representing the drawing surface of the  
    // control or form g is a member of.  
    g = this.CreateGraphics();  
    
    Graphics ^ g;  
    // Sets g to a graphics object representing the drawing surface of the  
    // control or form g is a member of.  
    g = this->CreateGraphics();  
    

イメージ オブジェクトから作成する

さらに、Image クラスから派生した任意のオブジェクトからグラフィックス オブジェクトを作成することもできます。

イメージから Graphics オブジェクトを作成するには

  • Graphics.FromImage メソッドをイメージ変数の名前を指定して呼び出し、そこから Graphics オブジェクトを作成します。

    次の例は、Bitmap オブジェクトの使用方法を示しています。

    Dim myBitmap as New Bitmap("C:\Documents and Settings\Joe\Pics\myPic.bmp")  
    Dim g as Graphics = Graphics.FromImage(myBitmap)  
    
    Bitmap myBitmap = new Bitmap(@"C:\Documents and
       Settings\Joe\Pics\myPic.bmp");  
    Graphics g = Graphics.FromImage(myBitmap);  
    
    Bitmap ^ myBitmap = gcnew  
       Bitmap("D:\\Documents and Settings\\Joe\\Pics\\myPic.bmp");  
    Graphics ^ g = Graphics::FromImage(myBitmap);  
    

注意

Graphics オブジェクトは、16 ビット、24 ビット、32 ビットの .bmp ファイルなど、インデックスのない .bmp ファイルからのみ作成できます。 インデックス付きの .bmp ファイルのピクセルにカラー テーブルのインデックスが保持されているのとは対照的に、インデックスのない .bmp ファイルでは各ピクセルに色が保持されます。

図形とイメージの描画と操作

Graphics オブジェクトを作成したら、線や図形の描画、テキストのレンダリング、イメージの表示と操作に使用できます。 Graphics オブジェクトと共に使用するプリンシパル オブジェクトは次のとおりです。

  • Pen クラス: 線の描画、図形のアウトライン表示、またはその他の幾何学的表現のレンダリングに使用します。

  • Brush クラス: 図形、イメージ、テキストの塗りつぶしなど、グラフィックスの領域を塗りつぶすために使用します。

  • Font クラス: テキストのレンダリング時に使用する図形の説明を提供します。

  • Color 構造体: 表示するさまざまな色を表します。

作成した Graphics オブジェクトを使用するには

関連項目