2

質問が些細なものかどうかはわかりませんが、のメソッドのオーバーロードを使用する必要がありGraphics.DrawImageます。

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

RectangleF宛先の長方形がありますので、に変換する必要がありますRectangleF、MSDNPointF[]の例では、平行四辺形を定義するために3つのポイントしか使用しないため、少し混乱しました。

どうすればいいですか?

前もって感謝します

4

2 に答える 2

2

配列を作成するだけで作成できませんでしたか?

(メモリから)ここで、dは宛先RectangleFです:

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) };
于 2012-02-22T20:19:34.960 に答える
2

OK、MSDNで見つけました:

destPointsパラメーターは、平行四辺形の3つのポイントを指定します。3つのPointF構造は、平行四辺形の左上隅、上隅、および左下隅を表します。4番目の点は、最初の3つから外挿されて、平行四辺形を形成します。

したがって、次の方法でポイント配列を作成できます。

    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)
        };
    }
于 2012-02-23T13:30:54.893 に答える