C# resim üzerinde gezinme

350070

Megapat
İlk 5 Haneli Mesajınız!
Katılım
6 Aralık 2017
Mesajlar
10.605
Makaleler
4
Çözümler
41
Selamünaleyküm arkadaşlar.

C# programla diliyle büyük bir resmi yükleyip; forma ise o resmin belli bir bölümünü nasıl göstertebiliriz?
Yani şöyle;

1650996229542.png
 
Aleyküm selam. Bu alanda daha önce deneme yapmadım fakat birkaç şey söyleyebilirim.

Önce farenin hangi pozisyonda olduğuna göre bir alan belirleyin. Atıyorum x = 20, y = 120 olsun. Daha sonra büyüteceğiniz alanın boyutunu belirleyin. 100 x 100 diyelim biz buna. Resmi ilk önce kırpmamız gerekiyor.

Bitmap.Clone fonksiyonu ile kırpma işlemini yapabilirsiniz. Kırptığınız resmi de ayrı bir resim olarak sağ veya sol tarafta gösterebilirsiniz. Basitçe mantığı bu şekilde.
 
Bu alanda daha önce deneme yapmadım fakat birkaç şey söyleyebilirim.

Önce farenin hangi pozisyonda olduğuna göre bir alan belirleyin. Atıyorum x = 20, y = 120 olsun. Daha sonra büyüteceğiniz alanın boyutunu belirleyin. 100 x 100 diyelim biz buna. Resmi ilk önce kırpmamız gerekiyor.

Bitmap.Clone fonksiyonu ile kırpma işlemini yapabilirsiniz. Kırptığınız resmi de ayrı bir resim olarak sağ veya sol tarafta gösterebilirsiniz. Basitçe mantığı bu şekilde.
İnceledim ve çok karmaşık geldi.
 
İnceledim ve çok karmaşık geldi.
Karmaşık değil aslında. 100 x 100 olarak belirlediysek farenin konumundan x ekseninden geriye doğru 50 ve y ekseninde geriye doğru 50, ileri doğru da aynı şekilde 50 şer birim genişliğinde bir dikdörtgen oluşturabilirsiniz. Bu dikdörtgen boyutu kadar da resmin pozisyonunda kırpma yaparsınız. Sadece biraz daha araştırmanız gerekiyor.
 
Karmaşık değil aslında. 100 x 100 olarak belirlediysek farenin konumundan x ekseninden geriye doğru 50 ve y ekseninde geriye doğru 50, ileri doğru da aynı şekilde 50 şer birim genişliğinde bir dikdörtgen oluşturabilirsiniz. Bu dikdörtgen boyutu kadar da resmin pozisyonunda kırpma yaparsınız. Sadece biraz daha araştırmanız gerekiyor.
Kod:
private void Clone_Example2(PaintEventArgs e)
{

    // Create a Bitmap object from a file.
    Bitmap myBitmap = new Bitmap("Grapes.jpg");

    // Clone a portion of the Bitmap object.
    RectangleF cloneRect = new RectangleF(0, 0, 100, 100);
    System.Drawing.Imaging.PixelFormat format =
        myBitmap.PixelFormat;
    Bitmap cloneBitmap = myBitmap.Clone(cloneRect, format);

    // Draw the cloned portion of the Bitmap object.
    e.Graphics.DrawImage(cloneBitmap, 0, 0);
}

Deniyorum.
@Evilmonster Bitmap türündeki bir değişkeni, pictureBox'a nasıl ekleriz?
 
Kod:
private void Clone_Example2(PaintEventArgs e)
{

    // Create a Bitmap object from a file.
    Bitmap myBitmap = new Bitmap("Grapes.jpg");

    // Clone a portion of the Bitmap object.
    RectangleF cloneRect = new RectangleF(0, 0, 100, 100);
    System.Drawing.Imaging.PixelFormat format =
        myBitmap.PixelFormat;
    Bitmap cloneBitmap = myBitmap.Clone(cloneRect, format);

    // Draw the cloned portion of the Bitmap object.
    e.Graphics.DrawImage(cloneBitmap, 0, 0);
}

Deniyorum.
@Evilmonster Bitmap türündeki bir değişkeni, pictureBox'a nasıl ekleriz?
PictureBox'un Image değerine eşitleyin.
 
PictureBox'un Image değerine eşitleyin.
1650997606073.png

Yaptım ama "parameter not valid" gibi hata aldım. Galiba dizini doğru ekleyemedim.
Bu şampiyon resmini, Bitmap ile oluşturulan değişkene nasıl dizin olarak gösterbilirim?
Ben böyle yaptım;
Bitmap bit = new Bitmap("img\\champion.png");
 
Eki Görüntüle 1371224
Yaptım ama "parameter not valid" gibi hata aldım. Galiba dizini doğru ekleyemedim.
Bu şampiyon resmini, Bitmap ile oluşturulan değişkene nasıl dizin olarak gösterbilirim?
Ben böyle yaptım;
Bitmap bit = new Bitmap("img\\champion.png");
champion.png'nin özelliklerinden "Copy To Output" ayarını "Always" yapın.
Daha sonra konum olarak Environment.CurrentDirectory + "\\champion.png" yazın.
 

Technopat Haberler

Yeni konular

Geri
Yukarı