Dark Sauron Ответов: 3

Как загрузить и показать случайные изображения в поле изображения в c# ?


Я делаю приложение, которое, когда я нажимаю кнопку, некоторые растровые изображения загружаются случайным образом из определенного места и отображаются в pictureBox ! Как это сделать ?

мой код уже таков :


using System;
using System.Threading;
using System.IO;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MLP_OCR
{
    public partial class Form1 : Form
    {
        int index = -1;
        List<Image> images;

        public Form1()
        {
            InitializeComponent();
            images = new List<Image>();
            DirectoryInfo di = new DirectoryInfo(@"F:\bmp"); // give path
            FileInfo[] finfos = di.GetFiles("*.bmp", SearchOption.AllDirectories);
            foreach (FileInfo fi in finfos)
                images.Add(Image.FromFile(fi.FullName));
        }

        private async void trainButton_Click(object sender, EventArgs e)
        {
            for (index=-1; index < 1699; index++)
            {
                //index++;
                if (index < 0 || index >= images.Count)
                    index = 0;
                samplePictureBox.Image = images[index];
                await Task.Delay(2);
            }

        }
    }
}

3 Ответов

Рейтинг:
24

sankarsan parida

Если вы используете маршрут изображения, вы можете создать список изображений с помощью ListImage 1 изображения = новый списокImage 2(); и добавьте к нему каждое изображение с изображениями.Добавить(изображение); для каждого изображения.

For Images:

Random random = new Random();
samplePictureBox.Image = images[random.Next(0, images.Count - 1)];


Dark Sauron

Спасибо, это сработало как заклинание :-X

Рейтинг:
1

CPallini

  1. Создайте список имен изображений (вы можете использовать Directoryinfoкласс.EnumerateFiles способ[^] для того, чтобы выполнить его).
  2. Выберите случайное число r, между 0 и (List.Count-1).
  3. Загрузите и покажите изображение, соответствующее элементу r из списка.
  4. Дождитесь нажатия кнопки
  5. Переходим к пункту 2.


Рейтинг:
0

OriginalGriff

Попробовать это:

private Random rand = new Random();
...
public void GetRandomImage()
    {
    string[] files = Directory.GetFiles(@"D:\Temp\", "*.jpg", SearchOption.AllDirectories);
    myPictureBox.Image = Image.FromFile(files[rand.Next(files.Length)]);
    }