Отображение случайных изображений GIF из указанного места - PullRequest
0 голосов
/ 16 мая 2018

Я уже некоторое время работаю над своим ИИ, но, похоже, я не могу заставить своего ИИ отображать случайное GIF-изображение в моем Picture Box из этого места.

C: \ Users \ scatt \ Desktop \ Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C - master \ Marvel J.A.R.V.I.S Личный помощник \ Resources \ AIPICS \

Пример того, что нужно.

string[] imagePaths1 = Directory.GetFiles(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\images", "*.gif", SearchOption.AllDirectories);

Но вместо аудиофайлов мне нужны изображения в формате GIF.

Это пример кода, который я использовал.

case "test":
                int image1;
                Random randim = new Random();
                image1 = randim.Next(0, 4);

                switch (image1)
                {
                    case 0:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\giphy.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;
                    case 1:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\Party!.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;
                    case 2:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\Staredown.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 3:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\tenor.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 4:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\idgaf-obama.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 5:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\homealone.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 6:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\giphy.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 7:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\fastsoccer.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;

                    case 8:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\wallstreet.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;


                    case 9:
                        pictureBox2.Image = Image.FromFile(@"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\DYjbX.gif");
                        pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
                        pictureBox1.CancelAsync();
                        break;



                }

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Этот код может помочь вам начать:

var random = new Random();
var folder = @"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\images";

var fileNames = Directory.EnumerateFiles(folder, "*.gif", SearchOption.AllDirectories)
    .Select((file, index) => new {file, index})
    .ToDictionary(z => z.index, y => y.file);

var randomPic = fileNames[random.Next(0, fileNames.Count)];
pictureBox2.Image = MediaTypeNames.Image.FromFile(Path.Combine(folder, randomPic));
pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.CancelAsync();

Главное - получить имена файлов в структуре данных. Я использую Dictionary - вы можете так же легко использовать List, используя:

var random = new Random();
var folder = @"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\images";

var fileNames = Directory.EnumerateFiles(folder, "*.gif", SearchOption.AllDirectories).ToList();

var randomPic = fileNames[random.Next(0, fileNames.Count)];
pictureBox2.Image = MediaTypeNames.Image.FromFile(Path.Combine(folder, randomPic));
pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.CancelAsync();

Затем случайным образом выберите имя файла и заполните pictureBox2 этим именем.

Вы также должны строго рассмотреть перемещение random как static поле.

0 голосов
/ 16 мая 2018

вы можете использовать следующее: -

var basePath =
    @"C:\Users\scatt\Desktop\Marvel-J.A.R.V.I.S-Personal-Assistant-Winform-C--master\Marvel J.A.R.V.I.S Personal Assistant\Resources\AIPICS\";

var pics = System.IO.Directory.EnumerateFiles(basePath, "*.gif").ToArray();
var randomPic = pics.OrderBy(p => Guid.NewGuid()).First();
pictureBox2.Image = MediaTypeNames.Image.FromFile(randomPic);
pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.CancelAsync();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...