Expand|Select|Wrap|Line Numbers
- 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;
- using System.IO;
- namespace WindowsFormsApplication1
- {
- public partial class Picturebox1_Fullscreen : Form
- {
- BackgroundWorker backGroundWorker1;
- Bitmap pb_form1;
- Bitmap[] myBitmaps;
- Bitmap pb11;
- FileInfo[] file_info_mouse_wheel;
- string radar_images_download_directory;
- private Bitmap[] file_info_trackBar2;
- public Picturebox1_Fullscreen()
- {
- InitializeComponent();
- backGroundWorker1 = new BackgroundWorker();
- radar_images_download_directory = Options_DB.Get_Radar_Images_Download_Directory();
- DirectoryInfo dir1 = new DirectoryInfo(radar_images_download_directory);
- file_info_mouse_wheel = dir1.GetFiles("*.jpg");
- trackBar1.Minimum = 0;
- trackBar1.Maximum = file_info_mouse_wheel.Length - 1;
- trackBar1.Value = file_info_mouse_wheel.Length - 1;
- pb_form1 = new Bitmap(Form1.pb1);
- myBitmaps = ImagesComparison.get_images_with_clouds(pb_form1);
- file_info_trackBar2 = myBitmaps;
- }
- private void splitContainer1_Panel1_DoubleClick(object sender, EventArgs e)
- {
- this.Close();
- }
- private void splitContainer1_Panel2_DoubleClick(object sender, EventArgs e)
- {
- this.Close();
- }
- private void pictureBox1_DoubleClick(object sender, EventArgs e)
- {
- this.Close();
- }
- private bool LoadPictureAt(int nIndex, object c)
- {
- bool bRet = false;
- if (nIndex >= 0 && nIndex < file_info_mouse_wheel.Length)
- {
- if (c.Equals(trackBar1))
- pictureBox1.Load(file_info_mouse_wheel[nIndex].FullName);
- bRet = true;
- }
- if (nIndex >= 0 && nIndex < file_info_trackBar2.Length)
- {
- if (c.Equals(trackBar2))
- pictureBox1.Image = file_info_trackBar2[nIndex];
- bRet = true;
- }
- return bRet;
- }
- private void trackBar2_Scroll(object sender, EventArgs e)
- {
- LoadPictureAt(trackBar2.Value, sender);
- pictureBox1.Refresh();
- }
- private void trackBar1_Scroll(object sender, EventArgs e)
- {
- LoadPictureAt(trackBar1.Value, sender);
- backGroundWorker1.DoWork +=new DoWorkEventHandler(backGroundWorker1_DoWork);
- pictureBox1.Refresh();
- }
- public PictureBox picturebox1(PictureBox pb1)
- {
- pictureBox1.Image = pb1.Image;
- return pictureBox1;
- }
- public string picturebox1_lastFile(string last_file)
- {
- pictureBox1.Load(last_file);
- return last_file;
- }
- private void backGroundWorker1_DoWork(object sender, DoWorkEventArgs e)
- {
- pb11 = new Bitmap(pictureBox1.Image);
- myBitmaps = ImagesComparison.get_images_with_clouds(pb11);
- file_info_trackBar2 = myBitmaps;
- }
- }
- }
Expand|Select|Wrap|Line Numbers
- private void trackBar1_Scroll(object sender, EventArgs e)
- {
- LoadPictureAt(trackBar1.Value, sender);
- pb11 = new Bitmap(pictureBox1.Image);
- myBitmaps = ImagesComparison.get_images_with_clouds(pb11);
- file_info_trackBar2 = myBitmaps;
- pictureBox1.Refresh();
- }
Since in the constructor and also in the trackBar1_Scroll event im using the get_images_with_clouds event from another class and this get_images_with_clouds using For and make the program to be hold untill the For in the other class will end. I want to use the BackgroundWorker in the two places where im using the get_images_with_clouds so it wont stuck/hold the program.
I want that when im doing ImagesComparison.get_images_with_clouds(pb11); so it will do it in the Background.
This is the ImagesComparison.get_images_with_clouds code if its important:
Expand|Select|Wrap|Line Numbers
- public static Bitmap[] get_images_with_clouds(Bitmap radar_image)
- {
- int e = 0;
- int f = 0;
- int image_clock_area_x=0;
- int image_clock_area_y=0;
- int image_clock_area_x1=140;
- int image_clock_area_y1=21; Bitmap[] images;
- images = new Bitmap[15];
- Bitmap image;
- image = new Bitmap(Properties.Resources.radar_without_clouds);
- for (e = image_clock_area_x; e < image_clock_area_x + image_clock_area_x1; e++)
- {
- for (f = image_clock_area_y; f < image_clock_area_y + image_clock_area_y1; f++)
- {
- Color clock_color = radar_image.GetPixel(e, f);
- image.SetPixel(e, f, clock_color);
- }
- }
- int c;
- for (c = 0; c < images.Length; c++)
- {
- images[c] = new Bitmap(image);
- }
- Bitmap new_image = new Bitmap(Properties.Resources.radar_without_clouds);
- Bitmap new_image1 = new Bitmap(Properties.Resources.radar_without_clouds);
- black_and_white(new_image, radar_image);// to change the black and white function name
- Image image1 = black_and_white(new_image, radar_image);
- Bitmap clouds = new Bitmap(image1);
- int x;
- int y;
- int a;
- int b;
- int d;
- Bitmap redImage;
- redImage = new Bitmap(512, 512);
- for (x = 0; x < redImage.Width; x++)
- {
- for (y = 0; y < redImage.Height; y++)
- {
- redImage.SetPixel(x, y, Color.Red);
- }
- }
- for (a = 0; a < new_image.Width; a++)
- {
- for (b = 0; b < new_image.Height; b++)
- {
- Color color1 = clouds.GetPixel(a, b);
- Color color2 = radar_image.GetPixel(a, b);
- if (color1.R == 0 && color1.G == 0 && color1.B == 0)
- {
- }
- else
- {
- double h, mm;
- h = color2.GetHue();
- mm = RadarAnalysis.Hue2MMPerHour(h);
- double treshold = 0;
- for (d = 0; d < images.Length; d++)
- {
- if (mm >= treshold)
- {
- // new_image.SetPixel(a, b, color2);
- images[d].SetPixel(a, b, color2);
- }
- treshold = treshold + 4;
- }
- }
- }
- }
- return images;
- }
Thanks.