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

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

그래픽 작업에는 다음 두 단계가 있습니다.

  1. Graphics 개체를 만듭니다.

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

그래픽 개체 만들기

그래픽 개체는 다양한 방법으로 만들 수 있습니다.

그래픽 개체를 만들려면 다음을 수행합니다.

  • 양식 또는 컨트롤의 Paint 이벤트에서 PaintEventArgs의 일부로 그래픽 개체에 대한 참조를 수신합니다. 이는 일반적으로 컨트롤에 대한 그리기 코드를 만들 때 그래픽 개체에 대한 참조를 가져오는 방법입니다. 마찬가지로 PrintDocument에 대한 PrintPage 이벤트를 처리할 때 PrintPageEventArgs의 속성으로 그래픽 개체를 가져올 수도 있습니다.

    또는

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

    또는

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

    다음 섹션에서는 이러한 각 프로세스에 대해 자세히 설명합니다.

그림판 이벤트 처리기의 PaintEventArgs

컨트롤에 대해 PaintEventHandler를 프로그래밍하거나 PrintDocument에 대해 PrintPage를 프로그래밍할 때 그래픽 개체는 PaintEventArgs 또는 PrintPageEventArgs의 속성 중 하나로 제공됩니다.

그림판 이벤트의 PaintEventArgs에서 그래픽 개체에 대한 참조를 가져오려면 다음을 수행합니다.

  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 메서드를 호출합니다.

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

참고

인덱스되지 않은 .bmp 파일(예: 16비트, 24비트, 32비트 .bmp 파일)에서만 Graphics 개체를 만들 수 있습니다. 인덱싱되지 않은 .bmp 파일의 각 픽셀은 색 테이블에 대한 인덱스를 보유하는 인덱싱된 .bmp 파일의 픽셀과 달리 색을 보유합니다.

도형과 이미지 그리기 및 조작

생성된 후 Graphics 개체를 사용하여 선과 모양을 그리거나, 텍스트를 렌더링하거나, 이미지를 표시 및 조작할 수 있습니다. Graphics 개체와 함께 사용되는 주 개체는 다음과 같습니다.

  • Pen 클래스 - 선을 그리거나, 도형을 간략하게 표시하거나, 다른 기하학적 표현을 렌더링하는 데 사용됩니다.

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

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

  • Color 구조체 - 표시할 다른 색을 나타냅니다.

만든 그래픽 개체를 사용하려면 다음을 수행합니다.

참고 항목