Como criar objetos gráficos para desenho

Antes de desenhar linhas e formas, renderizar texto ou exibir e manipular imagens com GDI+, você precisa criar um Graphics objeto. O Graphics objeto representa uma superfície de desenho GDI+ e é o objeto usado para criar imagens gráficas.

Há duas etapas ao trabalhar com gráficos:

  1. Criando um Graphics objeto.

  2. Usando o Graphics objeto para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens.

Criando um objeto gráfico

Um objeto gráfico pode ser criado de várias maneiras.

Para criar um objeto gráfico

  • Receba uma referência a um objeto gráfico como parte do PaintEventArgs no Paint caso de um formulário ou controle. Geralmente é assim que você obtém uma referência a um objeto gráfico ao criar código de pintura para um controle. Da mesma forma, você também pode obter um objeto gráfico como uma propriedade do PrintPageEventArgs ao manipular o PrintPage evento para um PrintDocumentarquivo .

    -ou-

  • Chame o CreateGraphics método de um controle ou formulário para obter uma referência a um Graphics objeto que representa a superfície de desenho desse controle ou formulário. Use esse método se quiser desenhar em um formulário ou controle que já exista.

    -ou-

  • Crie um Graphics objeto a partir de qualquer objeto herdado do Image. Essa abordagem é útil quando você quer alterar uma imagem existente.

    As seções a seguir dão detalhes sobre cada um desses processos.

PaintEventArgs no manipulador de eventos de pintura

Ao programar os PaintEventHandler controles for ou for PrintPage a PrintDocument, um objeto gráfico é fornecido como uma das propriedades de PaintEventArgs ou PrintPageEventArgs.

Para obter uma referência a um objeto Gráfico de PaintEventArgs no evento de pintura

  1. Declare o Graphics objeto.

  2. Atribua a variável para fazer referência ao Graphics objeto passado como parte do PaintEventArgs.

  3. Inserir código para pintar o formulário ou o controle.

    O exemplo a seguir mostra como fazer referência a um Graphics objeto do PaintEventArgs evento in Paint :

    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.  
       }  
    

Método CreateGraphics

Você também pode usar o CreateGraphics método de um controle ou formulário para obter uma referência a um Graphics objeto que representa a superfície de desenho desse controle ou formulário.

Para criar um objeto gráfico com o método CreateGraphics

  • Chame o CreateGraphics método do formulário ou controle no qual você deseja renderizar elementos gráficos.

    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();  
    

Criar de um objeto de imagem

Além disso, você pode criar um objeto gráfico de qualquer objeto que deriva da Image classe.

Para criar um objeto Gráfico de uma imagem

  • Chame o Graphics.FromImage método, fornecendo o nome da variável Image a partir da qual você deseja criar um Graphics objeto.

    O exemplo a seguir mostra como usar um Bitmap objeto:

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

Observação

Você só pode criar Graphics objetos a partir de arquivos .bmp não indexados, como arquivos .bmp de 16 bits, 24 bits e 32 bits. Cada pixel dos arquivos .bmp não indexados mantém uma cor, em contraste com pixels de arquivos .bmp indexados, que mantêm um índice para uma tabela de cores.

Desenhar e manipular imagens e formas

Depois de criado, um Graphics objeto pode ser usado para desenhar linhas e formas, renderizar texto ou exibir e manipular imagens. Os principais objetos que são usados com o Graphics objeto são:

  • A Pen classe—Usada para desenhar linhas, delinear formas ou renderizar outras representações geométricas.

  • A Brush classe—Usada para preencher áreas de elementos gráficos, como formas preenchidas, imagens ou texto.

  • A Font classe—Fornece uma descrição de quais formas usar ao renderizar texto.

  • A Color estrutura — Representa as diferentes cores a serem exibidas.

Para usar o objeto Gráfico que você criou

Confira também