Pergunta

Não tenho certeza se a pergunta é muito trivial, mas preciso usar o seguindo sobrecarga do método Graphics.DrawImage:

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

eu tenho um RectangleF como retângulo de destino, então preciso converter o RectangleF para PointF[] mas o exemplo no MSDN me confundiu um pouco porque usa apenas três pontos para definir um paralelogramo.

Como eu poderia fazer isso?

desde já, obrigado

Foi útil?

Solução 2

Ok, encontrei no MSDN:

O parâmetro destPoints especifica três pontos de um paralelogramo.As três estruturas PointF representam o canto superior esquerdo, canto superior direito, e canto inferior esquerdo cantos do paralelogramo.O quarto ponto é extrapolado dos três primeiros para formar um paralelogramo.

Portanto, você pode construir sua matriz de pontos da seguinte maneira:

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

Outras dicas

Você não poderia criá-lo apenas construindo o array?

(Da memória) Onde d é o RectangleF de destino:

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top