Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Graphics.DrawImage (Método) (Image, Point[], Rectangle, GraphicsUnit, ImageAttributes, Graphics.DrawImageAbort)

Dibuja la parte especificada de la Image indicada en la ubicación que se señale y con el tamaño especificado.

Espacio de nombres:  System.Drawing
Ensamblado:  System.Drawing (en System.Drawing.dll)

public void DrawImage(
	Image image,
	Point[] destPoints,
	Rectangle srcRect,
	GraphicsUnit srcUnit,
	ImageAttributes imageAttr,
	Graphics.DrawImageAbort callback
)

Parámetros

image
Tipo: System.Drawing.Image
Image que se va a dibujar.
destPoints
Tipo: System.Drawing.Point[]
Matriz de tres estructuras PointF que definen un paralelogramo.
srcRect
Tipo: System.Drawing.Rectangle
Estructura Rectangle que especifica la parte del objeto image que se va a dibujar.
srcUnit
Tipo: System.Drawing.GraphicsUnit
Miembro de la enumeración GraphicsUnit que especifica las unidades de medida que utilizará el parámetro srcRect.
imageAttr
Tipo: System.Drawing.Imaging.ImageAttributes
ImageAttributes que especifica la información de cambio de color y de gamma para image.
callback
Tipo: System.Drawing.Graphics.DrawImageAbort
Delegado Graphics.DrawImageAbort que especifica un método al que llamar durante el dibujado de la imagen. Se llama con frecuencia a este método para comprobar si se debe detener la ejecución del método DrawImage según los criterios establecidos por la aplicación.

ExcepciónCondición
ArgumentNullException

image es null.

El parámetro destPoints especifica tres puntos de un paralelogramo. Las tres estructuras PointF representan las esquinas superior izquierda, superior derecha e inferior izquierda del paralelogramo. El cuarto punto se extrapola a partir de los tres primeros para formar el paralelogramo.

El parámetro srcRect especifica una parte rectangular del objeto image que se va a dibujar. Esta parte se reduce de escala y se recorta para que encaje dentro del paralelogramo especificado por el parámetro destPoints.

Esta sobrecarga con el parámetro callback proporciona los medios para detener el dibujado de una imagen una vez comenzado, según los criterios especificados por la aplicación. Por ejemplo, una aplicación podría dibujar una imagen de gran tamaño y el usuario podría desplazar la imagen fuera de la pantalla, con lo que la aplicación detendría la operación de dibujado.

El siguiente ejemplo está pensado para que se utilice con Windows Forms y requiere PaintEventArgse, que es un parámetro del controlador del evento Paint. El código define en primer lugar un método de devolución de llamada para el delegado Graphics.DrawImageAbort; la definición es sencilla y únicamente comprueba si el método DrawImage lo llama con un parámetro callBackData nulo. El cuerpo principal del ejemplo realiza las siguientes acciones:

  • Crea una instancia del método de devolución de llamada Graphics.DrawImageAbort.

  • Crea una imagen a partir de un archivo JPEG, SampImag.jpg, en la carpeta del ejemplo.

  • Crea puntos que definen un paralelogramo en el cual se dibujará la imagen.

  • Crea un rectángulo para seleccionar la parte de la imagen que se va a dibujar.

  • Establece el píxel como unidad de dibujo de los gráficos.

  • Dibuja la imagen original en la pantalla.

  • Crea un paralelogramo adicional en el que se dibujará una imagen ajustada.

  • Crea y establece los atributos de la imagen ajustada para que tenga un valor de gamma más alto de lo habitual.

  • Dibuja la imagen ajustada en la pantalla.

La posición del paralelogramo original sin ajustar localiza la imagen en la pantalla, mientras que el tamaño del rectángulo y la forma y tamaño del paralelogramo determinan la escala y el grado de recorte de la imagen dibujada.

Debido a que este ejemplo utiliza una sobrecarga que no pasa un parámetro callBackData, la devolución de llamada Graphics.DrawImageAbort devuelve true, lo que hace que finalice el método DrawImage y el código de control de excepciones incluido en el ejemplo imprima en pantalla el texto correspondiente a la excepción en lugar de dibujar la imagen.



// Define DrawImageAbort callback method.
private bool DrawImageCallback1(IntPtr callBackData)
{

    // Test for call that passes callBackData parameter.
    if(callBackData==IntPtr.Zero)
    {

        // If no callBackData passed, abort DrawImage method.
        return true;
    }
    else
    {

        // If callBackData passed, continue DrawImage method.
        return false;
    }
}
private void DrawImageParaRectAttribAbort(PaintEventArgs e)
{

    // Create callback method.
    Graphics.DrawImageAbort imageCallback
        = new Graphics.DrawImageAbort(DrawImageCallback1);

    // Create image.
    Image newImage = Image.FromFile("SampImag.jpg");

    // Create parallelogram for drawing original image.
    Point ulCorner = new Point(100, 100);
    Point urCorner = new Point(550, 100);
    Point llCorner = new Point(150, 250);
    Point[] destPara1 = {ulCorner, urCorner, llCorner};

    // Create rectangle for source image.
    Rectangle srcRect = new Rectangle(50, 50, 150, 150);
    GraphicsUnit units = GraphicsUnit.Pixel;

    // Draw original image to screen.
    e.Graphics.DrawImage(newImage, destPara1, srcRect, units);

    // Create parallelogram for drawing adjusted image.
    Point ulCorner2 = new Point(325, 100);
    Point urCorner2 = new Point(550, 100);
    Point llCorner2 = new Point(375, 250);
    Point[] destPara2 = {ulCorner2, urCorner2, llCorner2};

    // Create image attributes and set large gamma.
    ImageAttributes imageAttr = new ImageAttributes();
    imageAttr.SetGamma(4.0F);
    try
    {
        checked
        {

            // Draw image to screen.
            e.Graphics.DrawImage(
                newImage,
                destPara2,
                srcRect,
                units,
                imageAttr,
                imageCallback);
        }
    }
    catch (Exception ex)
    {
        e.Graphics.DrawString(
            ex.ToString(),
            new Font("Arial", 8),
            Brushes.Black,
            new PointF(0, 0));
    }
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft