PDA

View Full Version : انتخاب عکس به طور تصادفی



programerinfonet
دوشنبه 16 اردیبهشت 1392, 14:25 عصر
سلام دوستان
من تو پوشه ی debag کنار فایل اجراییم یک پوشه images گذاشتم و توشم 15 تا عکس با نام های 1 تاjpg.15
و همین طور تو برنامه هم یک پیکچرباکس
حالا میخاوم هر 10 ثانیه یک بار عکس پیکچرباکس از توی اون پوشه به طور تصادفی یا ترتیب فرقی نمی کنه انتخاب بشه اما نمی دونم چه طوری این کارو کنم
اگه میشه کمکم کنید

_behnam_
دوشنبه 16 اردیبهشت 1392, 15:19 عصر
سلام دوست عزیز.
شما یا میتونید یه آرایه 15 تایی تعریف کنید و المان آنهارو 1.jpg تا 15.jpg قرار بدی . بعدش بیای اعداد تصادفی بین 0 تا 14 رو بسازی و طبق عدد بدست اومده المان آن را برگردونی. یا اینکه بیای عدد تصادفی از 1 تا 15 بسازی و عدد رو همراه با رشته به نام عکس تبدیل کنی.
مثلا :
int a= عدد تصادفی بین 1 تا 15
strImage=a.toString()+ ".jpg";

programerinfonet
دوشنبه 16 اردیبهشت 1392, 20:08 عصر
من این کد رو نوشتم اما فقط یک عکس رو انتخاب میکنه و همون هم باقی می مونه
کجای این کد مشکل داره ؟

private void timer1_Tick(object sender, EventArgs e)
{


for ( int i = 1; i < 13; i++)
{
string strimg = Application.StartupPath+"\\" + i+".jpg";
pictureBox2.Load(strimg);
}
}

esafb52
دوشنبه 16 اردیبهشت 1392, 20:42 عصر
سلام دوستان
من تو پوشه ی debag کنار فایل اجراییم یک پوشه images گذاشتم و توشم 15 تا عکس با نام های 1 تاjpg.15
و همین طور تو برنامه هم یک پیکچرباکس
حالا میخاوم هر 10 ثانیه یک بار عکس پیکچرباکس از توی اون پوشه به طور تصادفی یا ترتیب فرقی نمی کنه انتخاب بشه اما نمی دونم چه طوری این کارو کنم
اگه میشه کمکم کنید
شما که مسیر پوشه images رو ندادین فقط به فولدر اصلی برنامه اشاره کردین؟
یه لینک مفید
http://stackoverflow.com/questions/6422979/change-image-in-picturebox-every-second-c-sharp

wolf_majid
دوشنبه 16 اردیبهشت 1392, 21:03 عصر
private int i = 1;

private void timer1_Tick(object sender, EventArgs e)
{
pictureBox2.Load(Application.StartupPath + "\\" + i++ + ".jpg");
if (i == 16)
i = 1;
}

Mahmoud.Afrad
دوشنبه 16 اردیبهشت 1392, 21:20 عصر
میتونید نام فایلها رو در یک لیست قرار بدید و از اون استفاده کنید:

List<string> images;

private void button1_Click(object sender, EventArgs e)
{
string dir = Path.Combine(Application.StartupPath, "images");
images = Directory.GetFiles(dir).ToList();
timer1.Interval = 10000;
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
Random myRandom = new Random();
int index = myRandom.Next(0, images.Count);
try
{
pictureBox1.Image = Image.FromFile(images[index]);
}
catch (Exception)
{
images.RemoveAt(index);
}
}

programerinfonet
دوشنبه 16 اردیبهشت 1392, 21:37 عصر
میتونید نام فایلها رو در یک لیست قرار بدید و از اون استفاده کنید:

List<string> images;

private void button1_Click(object sender, EventArgs e)
{
string dir = Path.Combine(Application.StartupPath, "images");
images = Directory.GetFiles(dir).ToList();
timer1.Interval = 10000;
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
Random myRandom = new Random();
int index = myRandom.Next(0, images.Count);
try
{
pictureBox1.Image = Image.FromFile(images[index]);
}
catch (Exception)
{
images.RemoveAt(index);
}
}


ببخشید میشه یکم در مورد کد فوق توضیح بدید من نفهمیدم رو برنامم چی کار کنم
گفتم من تمام عکسام انتقال دادم تو root همون مسیر اصلی دایرکتور کنار فایل اجرایی و نام هاشونم همون یک تا 15 مونده
چی کار کنم
ممنون

esafb52
دوشنبه 16 اردیبهشت 1392, 21:57 عصر
میتونید نام فایلها رو در یک لیست قرار بدید و از اون استفاده کنید:

List<string> images;

private void button1_Click(object sender, EventArgs e)
{
string dir = Path.Combine(Application.StartupPath, "images");
images = Directory.GetFiles(dir).ToList();
timer1.Interval = 10000;
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
Random myRandom = new Random();
int index = myRandom.Next(0, images.Count);
try
{
pictureBox1.Image = Image.FromFile(images[index]);
}
catch (Exception)
{
images.RemoveAt(index);
}
}

جالب و خوب کد نوشتین

Mahmoud.Afrad
سه شنبه 17 اردیبهشت 1392, 02:42 صبح
ببخشید میشه یکم در مورد کد فوق توضیح بدید من نفهمیدم رو برنامم چی کار کنم
گفتم من تمام عکسام انتقال دادم تو root همون مسیر اصلی دایرکتور کنار فایل اجرایی و نام هاشونم همون یک تا 15 مونده
چی کار کنم
ممنون
در پست اول گفتید عکس ها توی پوشه ای به نام images هست و اگر دقت کنید جوابها هم براساس گفته شماست. پس عکسها رو در پوشه ای به نام images بزارید و کد را استفاده کنید.