C#按名称访问图像

时间:2014-01-12 17:38:21

标签: c# .net c#-4.0

我在C#项目中有多个图像,我必须随机访问它们。 假设我有5张图像(_1,_2,...),我生成1到5之间的随机数。 如何访问与该数字相对应的文件?

pictureBox.Image = Properties.Resources._1

6 个答案:

答案 0 :(得分:2)

假设您的图片资源名为 _1,_2,_3, ... 然后你可以做这样的事情:

int maxNumberOfImages = ..... the number of images you have
Random rnd = new Random();

pictureBox.Image = Properties.Resources.ResourceManager.GetObject(
    String.Format( "_{0}", rnd.Next(maxNumberOfImages) + 1 )
) as Bitmap;

答案 1 :(得分:1)

你可以这样做:

Random rnd = new Random();
this.pictureBox1.Image = new Bitmap(System.IO.Path.Combine("youFolder",String.Format("_{0}.yourExtension",rnd.Next(0,6)));

为了创建随机数,我使用了Next(min,max) Random的方法。然后我只需将新图像添加到pictureBox。

Here您可以找到Path.Combine

的参考

here Random.Next(min,max)的引用;

答案 2 :(得分:1)

请参阅此sample

    Random random= new Random();
    string path=random+".jpeg";
    Image image = Image.FromFile(path);
    pictureBox.Image = image;
    pictureBox.Height = image.Height;
    pictureBox.Width = image.Width;

您也可以使用:

    Random random= new Random();
    string path=random+".jpeg";
    pictureBox.Image = new Bitmap(path);

答案 3 :(得分:1)

只需使用类似的东西

Random rnd = new Random();
int im = rnd.Next(0, 5);
Image[] images  = new Image[]{Properties.Resources._1,Properties.Resources._2,Properties.Resources._3,Properties.Resources._4,Properties.Resources._5}
pictureBox.Image = images[im]; 

答案 4 :(得分:0)

使用此:

//generate your random number
Random rnd = new Random();
string rndNumber = rnd.Next(0,6).ToString();
var myImg = ResourceManager.GetObject(rndNumber) as Bitmap;

如果您的图像文件名如_1,_2等,则:

string rndNumber = "_" + rnd.Next(0,5).ToString();

答案 5 :(得分:0)

试试这个, protected void Page_Load(object sender,EventArgs e)     {         if(!IsPostBack)         {             的getImage();         }     }

private void getImage()
{
    Random rand = new Random();
    int i = rand.Next(1, 6);
    Image1.ImageUrl = "~/image/" + i.ToString() + ".jpg";
    Label1.Text = "image no :" + i.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
    getImage();
}