28 Haziran 2014 Cumartesi

C# : Resim Üzerindeki Renkleri Kullanma

     Kimi  zaman Visual Studio'nun bize uygulamalarımızda sundu Color Dialog seçeneği uygulamalarımızda yetmeyebilir. Bir resim düzenleme programı yapacaksınız diyelim. Hazırladığınız uygulamayı diğer resim düzenleme uygulamalarından farklı olmasını küçük değişikliklerle sağlayabilirsiniz. En basitinden kendi renk panelinizi oluşturup kullanıcılarınızın bunu kullanmasını sağlayabilirsiniz. Belki de kullanıcının seçtiği resim üzerindeki renkleri kullanmasını ya da resminin üzerindeki renklerle oynamasa fırsat tanıyan uygulamalar geliştirebilirsiniz.

          Bunları nasıl yapabiliriz şimdi ona bakalım biraz. Bir PictureBox nesnesi içerisinde aşağıda yer alan resmin renklerini kullanacağımızı varsayalım.

          Öncelikli yapmamız gereken PictureBox içerisinde resmi Bitmap değişkeni oluşturup onun üzerinde Bitmap olarak işlem yapacağız. Bunun için gerekli kodumuz şu şekildedir. (Aşağıdaki kodu formun Load olayında kullanabilirsiniz):

Bitmap bmp = (Bitmap)PictureBox.Image.Clone();


          Renk panelinin üzerinde olduğu PictureBox nesnesinin Click olayına aşağıdaki kodu yazarak o an resmin üzerinde hangi noktasındaysanız o rengi color değişkenine alarak bir renk olarak kullanabilirsiniz. 

Color renk = bmp.GetPixel(e.X, e.Y);

          Şimdide seçtiğimiz rengin Click olayından hemen sonra başka bir picturebox nesnesine aktarılmasını istiyoruz diyelim. Bunun için ColorShow adında bir picturebox nesnemizin olduğunu varsayalım. Bunun için ColorShow nesnemizin BackColor özelliğini kullanarak rengin değişmesini sağlayacağız. Bu kodu da hemen color olarak tanımladığımız renk değişkeninden sonra kullanabiliriz.

ColorShow.BackColor = renk;


         Bu üç adımı uygulayarak istediğiniz resimler üerindeki renkleri kullanabilir veya bu renkler üzerinde oynayabilirsiniz.