private void CizimAlani_MouseDown_1(object sender, MouseEventArgs e) { CizimAlani.MouseMove += CizimAlani_MouseMove_1; x = e.X; y = e.Y; CizimAlani.Refresh(); }
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); } } }
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(); }
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(); }
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(); }
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!"); } }