C# 显示指定位置的随机GIF图像
我已经在我的人工智能上工作了一段时间,但是我似乎无法让我的人工智能从这个位置将随机的GIF图像显示到我的图片框中 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\ 需要什么的例子C# 显示指定位置的随机GIF图像,c#,visual-studio,visual-studio-2017,C#,Visual Studio,Visual Studio 2017,我已经在我的人工智能上工作了一段时间,但是我似乎无法让我的人工智能从这个位置将随机的GIF图像显示到我的图片框中 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\ 需要什么的例子 string[] imagePaths1 = Directory.GetFiles(@"C:\Use
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;
}
您可以使用以下功能:-
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();
此代码可能会帮助您开始:
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();
主要的事情是将文件名放入数据结构中。我使用字典
-您可以使用列表
,使用:
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
您还应该将
随机
移动为静态
字段。您的代码现在做什么?你想让它做什么呢?很高兴知道谢谢。我还在学习,我猜这是我在“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;'现在它只会随机化我在案例1、案例2、案例3中添加的图像。@mjwillsm我的问题是如何将文件夹中的gif图像随机化到图片框中,而不是像我原来那样,我已经尝试了多次,所以我想我会要求help和社区非常乐于助人,感谢大家的帮助,有这么多好主意!还有我可以感谢你们的指点。哇,这是一个更容易的视觉效果,不完全是我的意思,但更容易谢谢你们!!!我不是故意的,我按错了按钮。@Keith NicholasSorry,我修好了。你们没有否决我:)你们没有足够的声誉要做到这一点,请不要使用Guid.NewGuid()
来生成熵。Guid
保证是唯一的,而不是随机的。请始终使用RNG。为什么要从索引创建字典?为什么不创建一个数组(从中可以自然索引)?这同样适用于@Enigmativity。我使用字典
部分是为了尝试向OP教授一些新内容。我将更改答案,以明确显示列表
代码-谢谢您的提问。