次の方法で共有


方法 : イメージを回転、反転、および傾斜させる

元のイメージの左上隅、右上隅、および左下隅に対して、それぞれ変換後の点を指定して、イメージを回転、反転、および傾斜させることができます。 この 3 つの変換後の点によって、元の四角形イメージを平行四辺形に変換するアフィン変換が決定されます。

使用例

たとえば、元のイメージが、左上隅が (0, 0)、右上隅が (100, 0)、左下隅が (0, 50) にある四角形だとします。 これらの 3 つの点を、次に示す変換後の点に割り当てるとします。

変換前の点

変換後の点

左上隅 (0, 0)

(200, 20)

右上隅 (100, 0)

(110, 100)

左下隅 (0, 50)

(250, 30)

元のイメージと、変換後の平行四辺形を次の図に示します。 元のイメージは傾斜され、反転され、回転され、そして平行移動されています。 元のイメージの上辺は、変換前は x 軸に沿っていましたが、変換後は点 (200, 20) と点 (110, 100) を結ぶ直線になっています。 元のイメージの左辺は、変換前は y 軸に沿っていましたが、変換後は点 (200, 20) と点 (250, 30) を結ぶ直線になっています。

ストライプ

同じ変換を写真に適用した場合を次の図に示します。

変換クライマ

同じ変換をメタファイルに適用した場合を次の図に示します。

変換メタファイル

最初の図で示したイメージを作成する例を次に示します。

        ' New Point(200, 20)  = destination for upper-left point of original
        ' New Point(110, 100) = destination for upper-right point of original
        ' New Point(250, 30)  = destination for lower-left point of original
        Dim destinationPoints As Point() = { _
            New Point(200, 20), _
            New Point(110, 100), _
            New Point(250, 30)}

        Dim image As New Bitmap("Stripes.bmp")

        ' Draw the image unaltered with its upper-left corner at (0, 0).
        e.Graphics.DrawImage(image, 0, 0)

        ' Draw the image mapped to the parallelogram.
        e.Graphics.DrawImage(image, destinationPoints)

    Point[] destinationPoints = {
new Point(200, 20),   // destination for upper-left point of 
                      // original
new Point(110, 100),  // destination for upper-right point of 
                      // original
new Point(250, 30)};  // destination for lower-left point of 
    // original

    Image image = new Bitmap("Stripes.bmp");

    // Draw the image unaltered with its upper-left corner at (0, 0).
    e.Graphics.DrawImage(image, 0, 0);

    // Draw the image mapped to the parallelogram.
    e.Graphics.DrawImage(image, destinationPoints);

コードのコンパイル

前述の例は Windows フォームと一緒に使用することが想定されていて、Paint イベント ハンドラーのパラメーターである PaintEventArgs e が必要です。 Stripes.bmp は、必ずシステム上で有効なイメージへのパスに置き換えてください。

参照

その他の技術情報

イメージ、ビットマップ、アイコン、およびメタファイルの操作