using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Test { public partial class Form1 : Form { Color mostfrequentpixel; Color[] c; int frequencyofmostfrequentpixel; bool ispixelexisting; Bitmap pic; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.WorkerSupportsCancellation = true; worker.DoWork += new DoWorkEventHandler(worker_DoWork); worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted); } private void button1_Click(object sender, EventArgs e) { textBox1.Clear(); OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png"; DialogResult r = ofd.ShowDialog(); if (r == DialogResult.OK) { pictureBox1.Image = Image.FromFile(ofd.FileName); pic = new Bitmap(pictureBox1.Image); worker.RunWorkerAsync(); } } private void worker_DoWork(object sender, DoWorkEventArgs e) { Bitmapfunctions f = new Bitmapfunctions(); int percent = 0; mostfrequentpixel = f.GetMostFrequentPixel(pic); percent += 25; worker.ReportProgress(percent); frequencyofmostfrequentpixel = f.FrequencyOfPixel(pic, mostfrequentpixel); percent += 25; worker.ReportProgress(percent); ispixelexisting = f.IsPixelExisting(pic, Color.FromArgb(0, 0, 0)); percent += 25; worker.ReportProgress(percent); c = f.GetPixelsFromBitmap(pic); percent += 25; worker.ReportProgress(percent); } private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { progressBar1.Value = e.ProgressPercentage; } private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { textBox1.Text += "Most Frequent Pixel: " + mostfrequentpixel + Environment.NewLine; textBox1.Text += "Frequency of Most Frequent Pixel: " + frequencyofmostfrequentpixel + Environment.NewLine; textBox1.Text += "RGB (0,0,0) is e" + ispixelexisting + Environment.NewLine; textBox1.Text += "All Pixels [" + c.Length + "]:" + Environment.NewLine; for (int i = 0; i < c.Length; i++) { textBox1.Text += c[i].ToString() + Environment.NewLine; } } } }