Aracılığıyla paylaş


Nasıl yapılır: Görüntüleri Döndürme, Yansıtma ve Eğme

Özgün resmin sol üst, sağ üst ve sol alt köşeleri için hedef noktaları belirterek görüntüyü döndürebilir, yansıtabilir ve eğebilirsiniz. Üç hedef noktası, özgün dikdörtgen görüntüyü paralelkenarla eşleyen bir benze dönüşümü belirler.

Örnek

Örneğin, özgün görüntünün sol üst köşesi (0, 0), sağ üst köşesi (100, 0) ve sol alt köşesi (0, 50) olan bir dikdörtgen olduğunu varsayalım. Şimdi bu üç noktayı aşağıdaki gibi hedef noktalara eşlediğiniz varsayın.

Özgün nokta Hedef noktası
Sol üst (0, 0) (200, 20)
Sağ üst (100, 0) (110, 100)
Sol alt (0, 50) (250, 30)

Aşağıdaki çizimde özgün görüntü ve paralelkenarla eşlenen görüntü gösterilmektedir. Özgün görüntü eğilmiş, yansıtılmış, döndürülmüş ve çevrilmiştir. Özgün görüntünün üst kenarı boyunca x ekseni, (200, 20) ve (110, 100) boyunca çalışan çizgiyle eşlenir. Özgün görüntünün sol kenarı boyunca y ekseni, (200, 20) ve (250, 30) boyunca çalışan çizgiyle eşlenir.

The original image and the image mapped to the parallelogram.

Aşağıdaki çizimde, bir fotoğraf görüntüsüne uygulanan benzer bir dönüşüm gösterilmektedir:

The picture of a climber and the picture mapped to the parallelogram.

Aşağıdaki çizimde, meta dosyaya uygulanan benzer bir dönüştürme gösterilmektedir:

Illustration of shapes and text and that mapped to the parallelogram.

Aşağıdaki örnek, ilk çizimde gösterilen görüntüleri oluşturur.

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

Kod Derleniyor

Yukarıdaki örnek, Windows Forms ile kullanılmak üzere tasarlanmıştır ve olay işleyicisinin Paint parametresi olan öğesini gerektirir.PaintEventArgse yerine Stripes.bmp sisteminizde geçerli olan bir görüntünün yolunu belirttiğinizden emin olun.

Ayrıca bkz.