Cómo: Crear objetos Graphics para dibujar

Antes de dibujar líneas y formas, representar texto o mostrar y manipular imágenes con GDI+ es preciso crear un objeto Graphics. El objeto Graphics representa una superficie de dibujo de GDI+ y se usa para crear imágenes gráficas.

Para trabajar con gráficos existen los dos pasos siguientes:

  1. Crear un objeto Graphics.

  2. Usar el objeto Graphics para dibujar líneas y formas, representar texto o mostrar y manipular imágenes.

Crear un objeto Graphics

El objeto Graphics se puede crear de diversas formas.

Para crear un objeto Graphics

  • Reciba una referencia a un objeto Graphics como parte de PaintEventArgs del evento Paint de un formulario o un control. Este es el modo en que normalmente se obtiene una referencia a un objeto Graphics cuando se crea código de dibujo para un control. De forma similar, también se puede obtener un objeto gráfico como una propiedad de PrintPageEventArgs al controlar el evento PrintPage de un objeto PrintDocument.

    O bien

  • Llame al método CreateGraphics de un control o un formulario para obtener una referencia a un objeto Graphics que represente la superficie de dibujo de dicho control o formulario. Utilice este método si desea dibujar en un formulario o en un control que ya existía con anterioridad.

    O bien

  • Cree un objeto Graphics a partir de cualquier objeto que herede de Image. Este método resulta útil cuando se desea alterar una imagen que ya existe.

    Las secciones siguientes proporcionan detalles sobre cada uno de estos procesos.

PaintEventArgs en el controlador de eventos Paint

Al programar PaintEventHandler para controles o el evento PrintPage de un objeto PrintDocument, se proporciona un objeto gráfico como una de las propiedades de PaintEventArgs o PrintPageEventArgs.

Para obtener una referencia a un objeto Graphics a partir de PaintEventArgs en el evento Paint

  1. Declare el objeto Graphics.

  2. Asigne la variable que hará referencia al objeto Graphics pasado como parte de PaintEventArgs.

  3. Inserte código para dibujar en el formulario o control.

    En el ejemplo siguiente se muestra cómo hacer referencia a un objeto Graphics desde PaintEventArgs en el evento 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.
       }
    

CreateGraphics (Método)

También puede utilizar el método CreateGraphics de un control o un formulario para obtener una referencia a un objeto Graphics que represente la superficie de dibujo de dicho control o formulario.

Para crear un objeto Graphics con el método CreateGraphics

  • Llame al método CreateGraphics del formulario o del control en el que desee representar 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();
    

Crear un objeto Graphics a partir de un objeto Image

También se puede crear un objeto Graphics a partir de cualquier objeto que se derive de la clase Image.

Para crear un objeto Graphics a partir de un objeto Image

  • Llame al método Graphics.FromImage, suministrando el nombre de la variable Image a partir de la cual desea crear un objeto Graphics.

    En el ejemplo siguiente se muestra cómo usar un objeto 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);
    

Nota

Sólo puede crear objetos Graphics a partir de archivos .bmp no indizados, como archivos .bmp de 16 bits, 24 bits y 32 bits. Cada píxel de archivos .bmp no indizados alberga un color, a diferencia de los píxeles de los archivos .bmp indizados, que albergan un índice que hace referencia a una tabla de colores.

Dibujar y manipular formas e imágenes

Una vez creado el objeto Graphics, éste se puede usar para dibujar líneas y formas, representar texto o mostrar y manipular imágenes. Los objetos de entidad de seguridad que se usan con el objeto Graphics son:

  • La clase Pen: se utiliza para dibujar líneas y contornos de formas o para representar otros elementos geométricos.

  • La clase Brush: se utiliza para rellenar áreas de gráficos, como formas rellenas, imágenes o texto.

  • La clase Font: proporciona una descripción de las formas que se utilizarán al representar texto.

  • La estructura Color: representa los distintos colores para mostrar.

Para utilizar el objeto Graphics que ha creado

Vea también

Tareas

Cómo: Representar imágenes con GDI+

Otros recursos

Introducción a la programación de gráficos

Gráficos y dibujos en Windows Forms

Líneas, curvas y formas