다음을 통해 공유


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

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

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

  1. Graphics 개체를 만듭니다.

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

Graphics 개체 만들기

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

Graphics 개체를 만들려면

  • 폼 또는 컨트롤의 Paint 이벤트에서 PaintEventArgs의 일부로 Graphics 개체에 대한 참조를 받습니다. 이 방법은 대개 컨트롤을 그리는 코드를 작성할 때 Graphics 개체에 대한 참조를 가져오는 데 사용됩니다. 마찬가지로 PrintDocument에 대한 PrintPage 이벤트를 처리할 때 PrintPageEventArgs의 속성으로 그래픽 개체를 가져올 수도 있습니다.

    또는

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

    또는

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

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

Paint 이벤트 처리기의 PaintEventArgs

컨트롤에 대한 PaintEventHandlerPrintDocument에 대한 PrintPage를 프로그래밍하는 경우 Graphics 개체가 PaintEventArgsPrintPageEventArgs의 속성 중 하나로 제공됩니다.

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의 그래픽 및 그리기

선, 곡선 및 도형