Pregunta

No estoy seguro si la pregunta es demasiado trivial, pero necesito usar el siguiente sobrecarga del método Graphics.DrawImage:

public void DrawImage(
    Image image,
    PointF[] destPoints,
    RectangleF srcRect,
    GraphicsUnit srcUnit,
    ImageAttributes imageAttr
)

tengo un RectangleF como rectángulo de destino, por lo que necesito convertir el RectangleF a PointF[] pero el ejemplo en MSDN Me confundió un poco porque solo usa tres puntos para definir un paralelogramo.

¿Cómo podría hacerlo?

gracias de antemano

¿Fue útil?

Solución 2

Ok, lo encontré en el MSDN:

El parámetro destPoints especifica tres puntos de un paralelogramo.Las tres estructuras PointF representan la arriba a la izquierda, superior derecha, y abajo a la izquierda esquinas del paralelogramo.El cuarto punto se extrapola de los tres primeros para formar un paralelogramo.

Entonces puedes construir tu matriz de puntos de la siguiente manera:

    private PointF[] GetPoints(RectangleF rectangle)
    {
        return new PointF[3]
        { 
            new PointF(rectangle.Left, rectangle.Top),
            new PointF(rectangle.Right, rectangle.Top),
            new PointF(rectangle.Left, rectangle.Bottom)
        };
    }

Otros consejos

¿No podrías crearlo simplemente construyendo la matriz?

(De memoria) Donde d es el destino RectánguloF:

destPoints[] = new PointF[4] { new PointF(d.Left, d.Top), new PointF(d.Right, d.Top), new PointF(d.Right, d.Bottom), new PointF(d.Left, d.Bottom) };
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top