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.
Aşağıdaki çizimde, bir fotoğraf görüntüsüne uygulanan benzer bir dönüşüm gösterilmektedir:
Aşağıdaki çizimde, meta dosyaya uygulanan benzer bir dönüştürme gösterilmektedir:
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.
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin