Загрузка изображений из каталога в графическое окно через определенные промежутки времени - PullRequest
2 голосов
/ 10 января 2012

Может ли кто-нибудь помочь мне в загрузке изображений из каталога в поле изображения через определенные промежутки времени. Например: у меня есть несколько изображений в папке \ Picture, таких как 1.jpg, 2.jpg..etc. Поэтому мое требование состоит в том, чтобы пройти через Picture Directory и загрузить 1.jpg в поле Picture Box, затем подождать 5 секунд, а затем загрузить 2.jpg в поле Picture Box.

Ответы [ 4 ]

3 голосов
/ 11 января 2012

Наконец-то получил, надеюсь, это будет полезно другим:

private void Form_Load(object sender, EventArgs e)
        {
            moveTimer.Interval = 1000;
            moveTimer.Tick += new EventHandler(moveTimer_Tick);
            moveTimer.Start();
        }
    private void moveTimer_Tick(object sender, System.EventArgs e)
            {
               string[] images = Directory.GetFiles(@"C:\Dir", "*.jpg");  
               image = Image.FromFile(images[counter]);
               pictureBox.Width = image.Width;
               pictureBox.Height = image.Height;
               pictureBox.Image = image;


                // Move Image to new location
                pictureBox.Left = rand.Next(Math.Max(0, Bounds.Width - pictureBox.Width));
                pictureBox.Top = rand.Next(Math.Max(0, Bounds.Height - pictureBox.Height));

                if (counter < images.Count - 1)
                {
                    counter = counter + 1;
                }
                else
                {
                    counter = 0;
                }
            }
3 голосов
/ 10 января 2012
string[] images = Directory.GetFiles(@"C:\Dir", "*.jpg");
foreach (string image in images)
{
  pictureBox1.Image = new Bitmap(image);
  Thread.Sleep(5000);
}

Просто поместите этот Код в BackgroundWorker в doWork Событие.Если вы хотите сохранить слайд-шоу, Allays поместите его в бесконечный цикл while

1 голос
/ 17 марта 2015

Загрузить его в графическом окне

var _with1 = openFileDialog1;

     _with1.Filter = ("Image Files |*.png; *.bmp; *.jpg;*.jpeg; *.gif;");
     _with1.FilterIndex = 4;
     //Reset the file name
     openFileDialog1.FileName = "";

     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
       pictureBox2.Image = Image.FromFile(openFileDialog1.FileName);
     }

вставить этот путь в дБ

try
     {
       con = new OleDbConnection(cs);
       con.Open();

       cmd = new OleDbCommand(cs);



       string cb = "insert into colorcodes(color,pic) VALUES ('" + colorcb.Text + "','" + openFileDialog1.FileName + "'  )";
       cmd = new OleDbCommand(cb);
       cmd.Connection = con;
       cmd.ExecuteNonQuery();
       con.Close();
       MessageBox.Show("image Saved Successfully");
     }

     catch (Exception ex)
     {
       MessageBox.Show(ex.Message);

     }

использовать image.location, чтобы снова отобразить в графическом окне из db

 try
         {
           con = new OleDbConnection(cs);
           con.Open();
           cmd = new OleDbCommand("SELECT pic from  colorcodes where color= '" + colorcb.Text + "'  ", con);
           dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
           dr.Read();
           pictureBox2.ImageLocation = dr[0].ToString();
         }

         catch (Exception ex)
         {
           MessageBox.Show(ex.Message);
         }
0 голосов
/ 27 сентября 2017
Image[] imagecache;
    int cnt = 0;
    private void Form1_Load(object sender, EventArgs e)
    {
        // change dir with your image folder. or if you want to add formats you can add them with *.jpeg etc.
        string [] imageFiles = Directory.GetFiles(@"c:\dir", "*.png", SearchOption.AllDirectories);

        // cache files in folder
        imagecache = new Image[imageFiles.Length];
        for (int i = 0; i < imageFiles.Length; i++)
        {

            imagecache[i] = Image.FromFile(imageFiles[i]);
        }


        timer1.Interval = 3000;
        timer1.Tick += new EventHandler(timer1_Tick);
        timer1.Start();
    }
    public void timer1_Tick(object sender, EventArgs e)
    {
        picturebox.Image = null;
        picturebox.Image = imagecache[cnt];
        Application.DoEvents(); //to avoid memory leak in big files.

        cnt++;
        // if cnt exceeds files count, returns back to 0
        cnt = cnt % imagecache.Length;


    }
...