다음을 통해 공유


방법: 그리는 데 필요한 그래픽 개체 만들기

업데이트: 2007년 11월

GDI+를 사용하여 선과 도형을 그리고 텍스트를 렌더링하거나 이미지를 조작하려면 먼저 Graphics 개체를 만들어야 합니다. Graphics 개체는 GDI+ 그리기 화면을 나타내며 그래픽 이미지를 만드는 데 사용됩니다.

그래픽에 대한 작업은 다음과 같은 두 단계로 이루어집니다.

  1. Graphics 개체를 만듭니다.

  2. Graphics 개체를 사용하여 선과 도형을 그리고 텍스트를 렌더링하거나 이미지를 표시 및 조작합니다.

Graphics 개체 만들기

여러 가지 방법을 사용하여 Graphics 개체를 만들 수 있습니다.

Graphics 개체를 만들려면

  • 폼 또는 컨트롤의 Paint 이벤트에서 PaintEventArgs의 일부로 Graphics 개체에 대한 참조를 받습니다. 이 방법은 대개 컨트롤을 그리는 코드를 작성할 때 Graphics 개체에 대한 참조를 가져오는 데 사용됩니다.

    - 또는 -

  • 폼 또는 컨트롤의 CreateGraphics 메서드를 호출하여 해당 폼이나 컨트롤의 그리기 화면을 나타내는 Graphics 개체에 대한 참조를 가져옵니다. 이미 있는 폼이나 컨트롤에서 그리려는 경우 이 방법을 사용합니다.

    - 또는 -

  • Image에서 상속된 개체에서 Graphics 개체를 만듭니다. 이 방법은 기존 이미지를 변경하려는 경우에 유용합니다.

    다음 단원에서는 위에서 제시한 세 가지 방법에 대해 각각 자세하게 설명합니다.

Paint 이벤트 처리기의 PaintEventArgs

컨트롤에 대한 PaintEventHandler를 프로그래밍하는 경우 Graphics 개체가 PaintEventArgs 중 하나로 제공됩니다.

Paint 이벤트의 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 개체에서 만들기

Image 클래스에서 파생되는 개체를 사용하여 Graphics 개체를 만들 수도 있습니다.

Image 개체에서 Graphics 개체를 만들려면

  • Graphics 개체를 만드는 데 사용할 Image 변수의 이름을 지정하여 Graphics.FromImage 메서드를 호출합니다.

다음 예제에서는 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);
참고:

16비트, 24비트 및 32비트 .bmp 파일 같은 인덱싱되지 않은 .bmp 파일에서만 Graphics 개체를 만들 수 있습니다. 인덱싱된 .bmp 파일의 픽셀에 색상표에 대한 인덱스가 저장되는 것과 달리 인덱싱되지 않은 .bmp 파일의 각 픽셀에는 색이 저장됩니다.

모양과 이미지 그리기 및 조작

Graphics 개체를 만든 다음에는 이 개체를 사용하여 선과 도형을 그리고 텍스트를 렌더링하거나 이미지를 표시 및 조작할 수 있습니다. 다음은 Graphics 개체와 함께 사용되는 기본 개체입니다.

  • Pen 클래스—선과 도형의 윤곽을 그리거나 기타 기하학적 표현을 렌더링하는 데 사용합니다.

  • Brush 클래스—채워진 도형, 이미지 또는 텍스트와 같이 그래픽의 영역을 채우는 데 사용합니다.

  • Font 클래스—텍스트를 렌더링할 때 사용할 도형에 대한 설명을 제공합니다.

  • Color 구조체—표시할 여러 가지 색을 나타냅니다.

새로 만든 Graphics 개체를 사용하려면

참고 항목

작업

방법: GDI+를 사용하여 이미지 렌더링

기타 리소스

그래픽 프로그래밍 시작

Windows Forms의 그래픽 및 그리기

선, 곡선 및 도형