19 Kasım 2014 Çarşamba

C# Görüntü İşleme ( Renkleri Ters Çevirme)

Öncelikle merhaba arkadaşlar.

Görüntü işleme ile ilgili pek bir bilgim yok. Bugün bir başlangıç yapayım dedim. Renkleri ters çevirme mantığını düşündüm. İsterseniz mantık kuralım öncelikle.

Şimdi 1x1 pixel bi resim var diyelim rengi siyah değerleri ise byte cinsinden en yüksek değeri alır. yani r=255, g=255,b=255 Bunu ters çevirmek için ise byte türünün en yüksek değeri olan 255 den çıkartarak beyaz rengi elde ederiz.

r=255-255
g=255-255
b=255-255



Aslında bu işlem renkleri ters çevirme işlemi değildir. Renk kodlarını maximum renkten negatifini almaktır. Kodlara geçiyorum hemen.

        Bitmap RenkleriTersCevir(Bitmap bmp, ProgressBar Tamamlama=null)//bmp Türünde resim ve zorunlu olmamakla birlikte progressbar alıyor.
        {
            for (int i = 0; i < bmp.Width; i++)//resmin maximum width'ine kadar tek tek i değişkenini dolaştırıyorum
            {
                for (int j = 0; j < bmp.Height; j++)//resmin maximum Height'ine kadar tek tek j değişkenini dolaştırıyorum
                {
                    Color a = bmp.GetPixel(i, j);//Burda sırada bulunan kordinattaki rengi alıyoruz.
                    a = Color.FromArgb(byte.MaxValue - a.R, byte.MaxValue - a.G, byte.MaxValue - a.B);//rengin negatif işlemini yaptırıyorum.
                    bmp.SetPixel(i, j, a);//sıradaki pixele yeni rengimizi aktarıyoruz.
                }
                if (Tamamlama != null)//Progressbar verildiyse.
                {
                    Tamamlama.Value = Convert.ToInt32((Convert.ToDouble(Tamamlama.Maximum.ToString()) / Convert.ToDouble(bmp.Width.ToString())) * Convert.ToDouble(i.ToString())); //Yüzdesini aktarıyor progressbara.
                }
            }
            return bmp;//yeni resmi geri döndürüyoruz.

        }

        private void button1_Click(object sender, EventArgs e)
        {
            pictureBox1.Image = RenkleriTersCevir((Bitmap)pictureBox1.Image, progressBar1);
        }




Kullanır mısınız tartışılır ama hiç yoktan gideceğiniz yolu biliyorsunuz artıkın.

Yararlı olması dileğiyle


Hiç yorum yok:

Yorum Gönder