Esempio n. 1
0
 private void CizimAlani_MouseDown_1(object sender, MouseEventArgs e)
 {
     CizimAlani.MouseMove += CizimAlani_MouseMove_1;
     x = e.X;
     y = e.Y;
     CizimAlani.Refresh();
 }
Esempio n. 2
0
        private void pictureBox2_Click(object senoder, EventArgs e)
        {
            Bitmap    bitmap       = new Bitmap(CizimAlani.Width, CizimAlani.Height);
            Graphics  cizimler     = Graphics.FromImage(bitmap);
            Rectangle ekranikaydet = CizimAlani.RectangleToScreen(CizimAlani.ClientRectangle);

            cizimler.CopyFromScreen(ekranikaydet.Location, Point.Empty, CizimAlani.Size);
            cizimler.Dispose();
            SaveFileDialog save = new SaveFileDialog();

            save.Filter = "Png Dosyası|*.png|jpeg Dosyası|*.jpg|bitmaps|*.bmp";

            if (save.ShowDialog() == DialogResult.OK)
            {
                if (File.Exists(save.FileName))
                {
                    File.Delete(save.FileName);
                }
                if (save.FileName.Contains(".jpg"))
                {
                    bitmap.Save(save.FileName, ImageFormat.Jpeg);
                }
                else if (save.FileName.Contains(".png"))
                {
                    bitmap.Save(save.FileName, ImageFormat.Png);
                }
                else if (save.FileName.Contains("bmp"))
                {
                    bitmap.Save(save.FileName, ImageFormat.Bmp);
                }
            }
        }
Esempio n. 3
0
        private void CizimAlani_MouseMove_1(object sender, MouseEventArgs e)
        {
            if (CizimAktfimi == true)
            {
                byte sonuc = 0;
                if (((e.X - x) >= 0) && ((e.Y - y) >= 0))
                {
                    kontrolek = (e.X - x) + (e.Y - y);
                    if (kontrolTerimi == 3)
                    {//Ucgen
                        sonuc = new Ucgen().kontrol(x, y, kontrolek);
                    }
                    else if (kontrolTerimi == 6)
                    {//Altigen
                        sonuc = new Altigen().kontrol(x, y, kontrolek);
                    }
                    else if (kontrolTerimi == 1)
                    {//Daire
                        int widthknt = e.X - x;
                        sonuc = new Daire().kontrol(x, y, widthknt);
                        if (sonuc == kontrolTerimi) // Daire sınıfındaki sonuc ile kontrol terimi eşitse alttaki işlemler yapılır.
                        {
                            width = e.X - x;
                        }
                    }
                    else if (kontrolTerimi == 2)
                    {                               //Kare
                        sonuc = new Kare().kontrol(x, y, height);
                        if (sonuc == kontrolTerimi) // Kare Sınıfındaki sonuc ile burdaki sonuç eşitse işlemler yapılıyor.
                        {
                            width  = e.X - x;
                            height = e.Y - y;
                        }
                    }

                    if ((sonuc == kontrolTerimi) && (kontrolTerimi == 3 || kontrolTerimi == 6))
                    {
                        ek = (e.X - x) + (e.Y - y);
                    }
                }
            }
            CizimAlani.Refresh();
        }
Esempio n. 4
0
        private Bitmap ResminHistograminiCiz(Bitmap bmp)
        {
            ArrayList DiziPiksel   = new ArrayList();
            int       OrtalamaRenk = 0;
            Color     OkunanRenk;
            int       R = 0, G = 0, B = 0;
            Bitmap    GirisResmi;

            GirisResmi = bmp;
            int ResimGenisligi  = GirisResmi.Width;
            int ResimYuksekligi = GirisResmi.Height;
            int i = 0;

            for (int x = 0; x < GirisResmi.Width; x++)
            {
                for (int y = 0; y < GirisResmi.Height; y++)
                {
                    OkunanRenk   = GirisResmi.GetPixel(x, y);
                    OrtalamaRenk = (int)(OkunanRenk.R + OkunanRenk.G + OkunanRenk.B) / 3; //Griton resimde üç kanal

                    DiziPiksel.Add(OrtalamaRenk);
                }
            }
            int[] DiziPikselSayilari = new int[256];
            for (int r = 0; r < 255; r++)
            {
                int PikselSayisi = 0;
                for (int s = 0; s < DiziPiksel.Count; s++)
                {
                    if (r == Convert.ToInt16(DiziPiksel[s]))
                    {
                        PikselSayisi++;
                    }
                }
                DiziPikselSayilari[r] = PikselSayisi;
            }

            int RenkMaksPikselSayisi = 0;

            for (int k = 0; k <= 255; k++)
            {
                listBox1.Items.Add("Renk:" + k + "=" + DiziPikselSayilari[k]);
                if (DiziPikselSayilari[k] > RenkMaksPikselSayisi)
                {
                    RenkMaksPikselSayisi = DiziPikselSayilari[k];
                }
            }

            Graphics CizimAlani;
            Pen      Kalem1 = new Pen(System.Drawing.Color.Yellow, 1);
            Pen      Kalem2 = new Pen(System.Drawing.Color.Red, 1);

            CizimAlani = pictureBox2.CreateGraphics();
            pictureBox2.Refresh();
            int    GrafikYuksekligi = 400;
            double OlcekY = RenkMaksPikselSayisi / GrafikYuksekligi, OlcekX = 1.6;

            for (int x = 0; x <= 255; x++)
            {
                CizimAlani.DrawLine(Kalem1, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX),
                                    (GrafikYuksekligi - (int)(DiziPikselSayilari[x] / OlcekY)));
                if (x % 50 == 0)
                {
                    CizimAlani.DrawLine(Kalem2, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), 0);
                }
            }
            return(bmp);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            pBislenmisresim.Image     = null;
            pBislenmisresim.BackColor = Color.Black;
            ArrayList DiziPiksel   = new ArrayList();
            int       OrtalamaRenk = 0;
            Color     OkunanRenk;
            Bitmap    GirisResmi = new Bitmap(pBoriginalresim.Image);

            for (int x = 0; x < GirisResmi.Width; x++)
            {
                for (int y = 0; y < GirisResmi.Height; y++)
                {
                    OkunanRenk   = GirisResmi.GetPixel(x, y);
                    OrtalamaRenk = (int)(OkunanRenk.R + OkunanRenk.G + OkunanRenk.B) / 3; //Griton resimde üç kanal rengi aynı değere sahiptir.
                    DiziPiksel.Add(OrtalamaRenk);                                         //Resimdeki tüm noktaları diziye atıyor.
                }
            }
            int[] DiziPikselSayilari = new int[256];
            for (int r = 0; r < 255; r++)     //256 tane renk tonu için dönecek.
            {
                int PikselSayisi = 0;
                for (int s = 0; s < DiziPiksel.Count; s++)     //resimdeki piksel sayısınca dönecek.
                {
                    if (r == Convert.ToInt16(DiziPiksel[s]))
                    {
                        PikselSayisi++;
                    }
                }
                DiziPikselSayilari[r] = PikselSayisi;
            }
            int RenkMaksPikselSayisi = 0;     //Grafikte y eksenini ölçeklerken kullanılacak.

            for (int k = 0; k <= 255; k++)
            {
                listBox1.Items.Add("Renk:" + k + "=" + DiziPikselSayilari[k]);
                if (DiziPikselSayilari[k] > RenkMaksPikselSayisi)
                {
                    RenkMaksPikselSayisi = DiziPikselSayilari[k];
                }
            }
            Graphics CizimAlani;
            Pen      Kalem1 = new Pen(System.Drawing.Color.Yellow, 1);
            Pen      Kalem2 = new Pen(System.Drawing.Color.Red, 1);

            CizimAlani = pBislenmisresim.CreateGraphics();
            pBislenmisresim.Refresh();
            int    GrafikYuksekligi = 400;
            double OlcekY = RenkMaksPikselSayisi / GrafikYuksekligi, OlcekX = 1.6;

            for (int x = 0; x <= 255; x++)
            {
                CizimAlani.DrawLine(Kalem1, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX),
                                    (GrafikYuksekligi - (int)(DiziPikselSayilari[x] / OlcekY)));
                if (x % 50 == 0)
                {
                    CizimAlani.DrawLine(Kalem2, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), 0);
                }
            }
            textBox1.Text = "Maks.Piks=" + RenkMaksPikselSayisi.ToString();
        }
Esempio n. 6
0
        public void ResminHistograminiCiz()
        {
            pictureBox2.Height = pictureBox1.Height * Convert.ToInt32(3);
            pictureBox2.Width  = pictureBox1.Width * Convert.ToInt32(3);

            ArrayList DiziPiksel = new ArrayList();


            Color OkunanRenk;

            int ResimGenisligi  = bmp.Width; //GirisResmi global tanımlandı.
            int ResimYuksekligi = bmp.Height;

            for (int x = 0; x < bmp.Width; x++)
            {
                for (int y = 0; y < bmp.Height; y++)
                {
                    OkunanRenk = bmp.GetPixel(x, y);
                    //OrtalamaRenk = (int)(OkunanRenk.R + OkunanRenk.G + OkunanRenk.B) / 3; //Griton resimde üç kanal rengi aynı değere sahiptir.

                    DiziPiksel.Add(OkunanRenk.R); //Gri resim olduğu için tek kanalı okuması yeterli olacaktır.
                }
            }

            int[] DiziPikselSayilari = new int[256];
            for (int r = 0; r < 255; r++) //256 tane renk tonu için dönecek.
            {
                int PikselSayisi = 0;
                for (int s = 0; s < DiziPiksel.Count; s++) //resimdeki piksel sayısınca dönecek.
                {
                    if (r == Convert.ToInt16(DiziPiksel[s]))
                    {
                        PikselSayisi++;
                    }
                }
                DiziPikselSayilari[r] = PikselSayisi;
            }

            //Değerleri listbox'a ekliyor.
            int RenkMaksPikselSayisi = 0; //Grafikte y eksenini ölçeklerken kullanılacak.

            for (int k = 0; k <= 255; k++)
            {
                listBox1.Items.Add("Renk:" + k + "=" + DiziPikselSayilari[k]);

                if (DiziPikselSayilari[k] > RenkMaksPikselSayisi)
                {
                    RenkMaksPikselSayisi = DiziPikselSayilari[k];
                }
            }

            //Grafiği çiziyor.
            Graphics CizimAlani;
            Pen      Kalem1 = new Pen(System.Drawing.Color.Blue, 1);
            Pen      Kalem2 = new Pen(System.Drawing.Color.Red, 1);

            CizimAlani = pictureBox2.CreateGraphics();

            pictureBox2.Refresh();
            int    GrafikYuksekligi = 450;
            double OlcekY = RenkMaksPikselSayisi / GrafikYuksekligi, OlcekX = 1.6;

            for (int x = 0; x <= 255; x++)
            {
                CizimAlani.DrawLine(Kalem1, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), (GrafikYuksekligi - (int)(DiziPikselSayilari[x] / OlcekY)));
                if (x % 50 == 0)
                {
                    CizimAlani.DrawLine(Kalem2, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), 0);
                }
            }
            textBox1.Text = "Maks.Piks=" + RenkMaksPikselSayisi.ToString();
        }
Esempio n. 7
0
        private void hesaplama_Click(object sender, EventArgs e)
        {
            try
            {
                pictureBox2.Image = null;

                input_img = this.getPic();

                Bitmap griton = this.griton(input_img);
                pictureBox1.Image = griton;

                width  = griton.Width;
                height = griton.Height;

                for (int x = 0; x < input_img.Width; x++)
                {
                    for (int y = 0; y < input_img.Height; y++)
                    {
                        input_clr = input_img.GetPixel(x, y);

                        pikseller.Add(input_clr.R);
                    }
                }


                for (int r = 0; r < 255; r++)
                {
                    int PikselSayisi = 0;
                    for (int s = 0; s < pikseller.Count; s++)
                    {
                        if (r == Convert.ToInt16(pikseller[s]))
                        {
                            PikselSayisi++;
                        }
                    }
                    numberP[r] = PikselSayisi;
                }

                int maxP = 0;
                for (int k = 0; k <= 255; k++)
                {
                    if (numberP[k] > maxP)
                    {
                        maxP = numberP[k];
                    }
                }

                Graphics CizimAlani;
                Pen      Kalem1 = new Pen(System.Drawing.Color.Blue, 1);
                Pen      Kalem2 = new Pen(System.Drawing.Color.Red, 1);
                CizimAlani = pictureBox2.CreateGraphics();

                pictureBox2.Refresh();
                int    GrafikYuksekligi = pictureBox2.Height;
                double OlcekY = maxP / GrafikYuksekligi, OlcekX = 1.6;
                for (int x = 0; x <= 255; x++)
                {
                    CizimAlani.DrawLine(Kalem1, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), (GrafikYuksekligi - (int)(numberP[x] / OlcekY)));
                    if (x % 50 == 0)
                    {
                        CizimAlani.DrawLine(Kalem2, (int)(20 + x * OlcekX), GrafikYuksekligi, (int)(20 + x * OlcekX), 0);
                    }
                }
            }
            catch
            {
                MessageBox.Show("Lütfen Fotoğraf Seçiniz veya Girdiğiniz Değerleri Kontrol Ediniz!");
            }
        }