PDA

View Full Version : گفتگو: اجراي مسير عكس كه در بانك ذخيره شده با تايمر



csharpprogramer88
پنج شنبه 14 مرداد 1389, 22:23 عصر
سلام
يكسري مسير عكس را در ديتا بيس ذخيره كردم كه در اون مسير خود عكس وجود داره حالا ميخوام هر عكس را به مدت 10 ثانيه نمايش دهم


int tempid=getmaxnumber(); //براي نگه داري مقدار بزرگترين آي دي
for (int k = 1; k <=tempid; k++)
{
cmd = new SqlCommand("select masir from tasvir where (id='"+k+"')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())


{


حالا ماندم بقيه اونو چي بنويسم
با اين دستور select ، فيلد masir را كه در آن مسير عكس نگهداري ميشه خونده ميشه به شرطي كه id اون عكس برابر k باشه ( تمام مسير عكس ها ميخونم )
نميدونم چطوري اين عكس ها را در يك ليست نگهداري كنم كه بعدا بخوام هر كدوم از اين عكس ها را با تايمر نشان كنم

mostafa_shaeri_tj
جمعه 15 مرداد 1389, 00:24 صبح
کافیه مسرشون رو تو یه آرایه string ذخیره کنی و با استفاده از تایمر یا thread عکس ها رو از ارایه واکشی کنی و نمایش بدی

mostafa_shaeri_tj
جمعه 15 مرداد 1389, 00:33 صبح
خوب ارایه ای از image یا bitmap بساز و ازش استفاده کن. البته من منظورتو نگرفتم . ارایه خطا میده یعنی چی ؟ چه خطایی؟ مگه چطوری تو ارایه میریزی؟

csharpprogramer88
جمعه 15 مرداد 1389, 00:42 صبح
منظورم از ارور اينه كه چون نوع فيلدم استرينگ هست من نميدونم چطوري بايد تصوير را انتقال بدم .
دوست عزيز اگر ممكنه كدي كه بتونم با اون خود تصوير را با توجه به مسير ذخيره شده در بانك در آرايه بريزم را برام بفرستيد
با تشكر

csharpprogramer88
جمعه 15 مرداد 1389, 10:41 صبح
دوستان كمك كنيد
من تعداد زيادي از مسير عكس ها را در ديتابيس ذخيره كردم حالا نميدونم چطوري بايد عكس ها را بصورت bitmap در بيارم و مثلا بريزم توي آرايه يا توي ليست


آخرين كدي را كه نوشتم اينه :



int tempid = getmaxnumber(); //براي نگه داري مقدار بزرگترين آي دي
for (int k = 1; k <= tempid; k++)
{
cmd = new SqlCommand("select masir from tasvir where (id='" + k + "')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())
{
Bitmap image = new Bitmap(dr["masir"].ToString());
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
imageDat = stream.ToArray();



} con.Close();
}




حالا ميخوام imageDat را در list بصورت زير بريزم ولي خطا ميده و موندم كه چطوري توي ليست يا آرايه بريزم


listImage.Add(imageDat);


دوستان لطفا كمك كنيد

حجتی نیا
جمعه 15 مرداد 1389, 10:55 صبح
یه برنامه میزارم شاید بدردت بخوره، خودم ننوشتم ولی کد پیچیده ای نداره
درضمن دیتابیس نداره ولی داره بر اساس آدرس عکس ها اونارو به لیست باکس اضافه و نمایش میده

csharpprogramer88
جمعه 15 مرداد 1389, 12:10 عصر
یه برنامه میزارم شاید بدردت بخوره، خودم ننوشتم ولی کد پیچیده ای نداره
درضمن دیتابیس نداره ولی داره بر اساس آدرس عکس ها اونارو به لیست باکس اضافه و نمایش میده

تشكر از شما
ديدم ولي به درد من نخورد

csharpprogramer88
جمعه 15 مرداد 1389, 12:23 عصر
listImage را به اين صورت در بالا تعريف كردم


public partial class Form1 : Form
{
List<Bitmap> listImage = new List<Bitmap>();

اگر بتونم تصوير را در آرايه هم بريزم خوبه

حجتی نیا
جمعه 15 مرداد 1389, 12:25 عصر
بعد از این خط
ims.save(stream.....)بنویس :

img = System.Drawing.Image.FromStream(stream);بعد به یه imagelist اینجوری اضافه کن :

imlist.images.add(img);خط [code]Imaagdat=stream..رو حذف کن
نتیجه رو بگو...
اگه بتونی برنامه رو بزاری بهتر میشه روش کار کرد..

حجتی نیا
جمعه 15 مرداد 1389, 12:44 عصر
یه برنامه نوشتم که عکس رو بهش آدرس میدی و آدرس رو تو یه لیبل میریزه(بجای دیتابیس) بعد عکس رو از رو همون آدرس میخونه و با پسوند bitmap تو picturebox نشون میده

csharpprogramer88
جمعه 15 مرداد 1389, 12:49 عصر
حجم بانك زياد بوده نتونستم آپ لود كنم ولي كل كد را مي فرستم


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;

namespace lcd
{
public partial class Form1 : Form
{
List<Bitmap> listImage = new List<Bitmap>();

SqlDataReader dr;
SqlDataAdapter da;
SqlConnection con;
SqlCommand cmd;
DataSet ds;
BindingSource bs;

public Form1()
{
InitializeComponent();
da = new SqlDataAdapter();
con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=lcd;Integrated Security=True");
cmd = new SqlCommand();
ds = new DataSet();
bs = new BindingSource();
}
byte[] imageDat;

public static int numsaat = 0;//براي انتخاب شماره ساعت ها در فرم ساعت

private int getmaxnumber() // بدست آوردن آي دي تصوير براي حلقه ريختن در ايميج ليست واقع در پيج لود
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string strmax = "select max(id) from tasvir";
cmd = new SqlCommand();
cmd.CommandText = strmax;
cmd.Connection = con;
try
{
return ((int)cmd.ExecuteScalar());
}
catch
{
return 1;
}
con.Close();
}

string[] ejra = new string[100];
string[] arrpic = new string[100];
byte[] arrshow = new byte[2000000];
int current = 0;

public Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;

float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQua lityBicubic;

g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();

return (Image)b;
}


private void Form1_Load(object sender, EventArgs e)
{
int tempid = getmaxnumber(); //براي نگه داري مقدار بزرگترين آي دي
for (int k = 1; k <= tempid; k++)
{
cmd = new SqlCommand("select masir from tasvir where (id='" + k + "')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())
{
Bitmap image = new Bitmap(dr["masir"].ToString());
MemoryStream stream = new MemoryStream();
image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);

imageDat = stream.ToArray();



// listImage.Add(imageDat);
} con.Close();
}
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
timer1.Start();
if (timer1.Interval == 10000)
{
if (numsaat == 12)
{
numsaat = 1;
}
else { numsaat++; };
frmsaat frm = new frmsaat();
frm.Show();
timer1.Interval = 15000;
}

else if (timer1.Interval == 15000)
{
frmsaat.ActiveForm.Hide();
//if (arrpic.Length-1 > current)
for (int i=1;i<=arrpic.Length-1;i++)
{
animationControl1.AnimatedImage = listImage[current];

// animationControl1.AnimatedImage=a

animationControl1.AnimationType = Animation.AnimationTypes.Fade2Images;
animationControl1.Animate(40);
current++;
timer1.Interval = 10000;
}
//else
//{
// current = 0;
// animationControl1.AnimatedImage = listImage[current];

//}

}
}
}
}

البته قسمت تايمر كامل نيست
با تشكر از شما

csharpprogramer88
جمعه 15 مرداد 1389, 12:57 عصر
یه برنامه نوشتم که عکس رو بهش آدرس میدی و آدرس رو تو یه لیبل میریزه(بجای دیتابیس) بعد عکس رو از رو همون آدرس میخونه و با پسوند bitmap تو picturebox نشون میده

دوست من ، قصد ندارم سريع فايل را در پيكچر باكس نشان بدم همونطوري كه در پست هاي قيبلي گفتم ميخوام عكس ها را كه بر روي هارد ذخيره شده و آدرس اون در بانكه بريزم توي آرايه يا يك ليست و از اونجا با تايمر از اون استفاده كنم
تازه بخاطر اينكه ميخوام افكت به تصوير بدم بايد از animationControl به جاي پيكچر باكس استفاده كنم البته اگر يه جوري بتونم در آرايه يا ليست بريزم بقيه حله .
شما لطف كنيد فقط بگيد من چطوري بايد اين تصاوير را در آرايه يا ليست بفرستم البته كد كامل اون را هم قرار دادم

حجتی نیا
جمعه 15 مرداد 1389, 14:21 عصر
دوست من ، قصد ندارم سريع فايل را در پيكچر باكس نشان بدم همونطوري كه در پست هاي قيبلي گفتم ميخوام عكس ها را كه بر روي هارد ذخيره شده و آدرس اون در بانكه بريزم توي آرايه يا يك ليست و از اونجا با تايمر از اون استفاده كنم
تازه بخاطر اينكه ميخوام افكت به تصوير بدم بايد از animationControl به جاي پيكچر باكس استفاده كنم البته اگر يه جوري بتونم در آرايه يا ليست بريزم بقيه حله .
شما لطف كنيد فقط بگيد من چطوري بايد اين تصاوير را در آرايه يا ليست بفرستم البته كد كامل اون را هم قرار دادم
دوست عزیز، اینکه گفتم آدرس رو تو یه لیبل ریختم واسه این بود که میخواستم سریع برنامه رو بنویسم .. شما بجای این، اردس هارو میتونی داخل یه دیتابیس بریزی ، عکس هم که داخل هارد است، نحوه خواندن عکس از آدرس رو هم که تو برنامم گذاشتم فقط شما باید از دیتابیس اونو بخونی بجای خوندن از لیبل .. ریختن تو یه imagelist روهم که توش گذاشتم .. دیگه مشکل از کجاست ؟؟

M.YasPro
شنبه 16 مرداد 1389, 06:56 صبح
سلام
فیلد masir توی دیتابیس از نوع رشته ، varbinary یا image هست؟

Rocker
شنبه 16 مرداد 1389, 07:12 صبح
راه حلش خیلی سادست نمی دونم چرا انقدر پیچیده فکر میکنی
ببین داخل همون حلقه ات که با استفاده از دیتاریدر داری مسر فایلهاتو میخونی هر بار که Read کردی مقدر فیلد masir رو میتونی تو یه ArrayList اضافه (Add) بعد از اینکه از حلقه خارج شدی باید Enable تایمرت رو True کنی
فقط یادت باشه ArrayList رو خارج از همه ی متدهات تعریف کنی که برای همه ی متدها قابل استفاده باشه
بعد داخل تایمرت هر بار از ArrayList با استفاده از یه متغیر صحیح که این هم عمومی باید باشه اطلاعات رو استخراج کن و توسط دستوارتی که دوستامون گفتند عکس مربوط به اون مسیر رو تو پیکچر باکست لود کن.
خیلی راحته

csharpprogramer88
شنبه 16 مرداد 1389, 07:17 صبح
سلام
فیلد masir توی دیتابیس از نوع رشته ، varbinary یا image هست؟

سلام دوست من
از نوع nvarchar
دوست عزيز من ميخوام مسير را در ديتابيس ذخيره كنم و بعد تصوير را با تايمر در animationcontrol نشان بدم البته با همكاري دوستمون حجتي نيا مشكل ارور حل شده و تصوير نشان داده ميشه ولي نميدونم چرا تار نشان ميده و اصلا واضح نيست .

آخرين كد من :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;

namespace lcd
{
public partial class Form1 : Form
{
List<Bitmap> listImage = new List<Bitmap>();
ImageList imglist = new ImageList();

SqlDataReader dr;
SqlDataAdapter da;
SqlConnection con;
SqlCommand cmd;
DataSet ds;
BindingSource bs;

public Form1()
{
InitializeComponent();
da = new SqlDataAdapter();
con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=lcd;Integrated Security=True");
cmd = new SqlCommand();
ds = new DataSet();
bs = new BindingSource();
}
byte[] imageDat;

public static int numsaat = 0;//براي انتخاب شماره ساعت ها در فرم ساعت

private int getmaxnumber() // بدست آوردن آي دي تصوير براي حلقه ريختن در ايميج ليست واقع در پيج لود
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
string strmax = "select max(id) from tasvir";
cmd = new SqlCommand();
cmd.CommandText = strmax;
cmd.Connection = con;
try
{
return ((int)cmd.ExecuteScalar());
}
catch
{
return 1;
}
con.Close();
}

string[] ejra = new string[100];
string[] arrpic = new string[100];
byte[] arrshow = new byte[2000000];
int current = 0;

public Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;

float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQua lityBicubic;

g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();

return (Image)b;
}


private void Form1_Load(object sender, EventArgs e)
{
int tempid = getmaxnumber(); //براي نگه داري مقدار بزرگترين آي دي
for (int k = 1; k <= tempid; k++)
{
cmd = new SqlCommand("select masir from tasvir where (id='" + k + "')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())
{
Image img = null;
img = System.Drawing.Bitmap.FromFile(dr["masir"].ToString());
imglist.Images.Add(img);
}
con.Close();
}
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
timer1.Start();
if (timer1.Interval == 10000)// نشان دادن ساعت
{
if (numsaat == 12)
{
numsaat = 1;
}
else { numsaat++; };
frmsaat frm = new frmsaat();
frm.Show();
timer1.Interval = 15000;
}
else if (timer1.Interval == 15000)
{
frmsaat.ActiveForm.Hide();
if (imglist.Images.Count > current)
{
animationControl1.Refresh();
animationControl1.AnimatedImage = (Bitmap)imglist.Images[current];
animationControl1.AnimationType = Animation.AnimationTypes.Fade2Images;
animationControl1.Animate(40);
current++;
timer1.Interval = 10000;
}
else
{
current = 0;
// animationControl1.AnimatedImage = listImage[current];
}
}
}
}
}

تاپيك قبلي كه با همكاري شما مشكلم حل شده وو در اون خود عكس را ديتابيس ذخيره ميكردم
http://barnamenevis.org/forum/showthread.php?t=220911&highlight=%D8%AA%D8%A7%D9%8A%D9%85%D8%B1

csharpprogramer88
شنبه 16 مرداد 1389, 07:19 صبح
راه حلش خیلی سادست نمی دونم چرا انقدر پیچیده فکر میکنی
ببین داخل همون حلقه ات که با استفاده از دیتاریدر داری مسر فایلهاتو میخونی هر بار که Read کردی مقدر فیلد masir رو میتونی تو یه ArrayList اضافه (Add) بعد از اینکه از حلقه خارج شدی باید Enable تایمرت رو True کنی
فقط یادت باشه ArrayList رو خارج از همه ی متدهات تعریف کنی که برای همه ی متدها قابل استفاده باشه
بعد داخل تایمرت هر بار از ArrayList با استفاده از یه متغیر صحیح که این هم عمومی باید باشه اطلاعات رو استخراج کن و توسط دستوارتی که دوستامون گفتند عکس مربوط به اون مسیر رو تو پیکچر باکست لود کن.
خیلی راحته

دوست عزيز منم توي آرايه ريختم ولي ارور ميده خواهشا اگر برات مقدوره با كد من شما هم امتحان كنيد
با تشكر

csharpprogramer88
شنبه 16 مرداد 1389, 07:21 صبح
دوستان خواهشا دوباره كدها را بررسي كنيد شايد به خاطر نحوه تبديل عكس باشه به bitmap

M.YasPro
شنبه 16 مرداد 1389, 07:36 صبح
خوب خدا رو شکر که حل شد .


ولي نميدونم چرا تار نشان ميده و اصلا واضح نيست .


توی تنظیمات animationControl ببینید پراپرتی برای این مشکل نداره مثل quality

csharpprogramer88
شنبه 16 مرداد 1389, 07:45 صبح
من چيزي نديدم .من قبلا كه خود عكس را در ديتابيس ذخيره ميكردم مشكلي نداشتم ولي حالا كه از مسير ميخونم مشكل داره به نظر من شما اگر كد را بررسي بفرماييد شايد بهتر باشه شايد نحوه bitmap كردن من ايراد داره

M.YasPro
شنبه 16 مرداد 1389, 08:02 صبح
نه نحوه bitmap کردن مشکلی نداره .
خود عکس ها بیرون از برنامه کیفیتشون خویه ؟
یه متد resizeImage توی کدتون هست از اون استفاده نکردید ؟

csharpprogramer88
شنبه 16 مرداد 1389, 08:08 صبح
نه نحوه bitmap کردن مشکلی نداره .
خود عکس ها بیرون از برنامه کیفیتشون خویه ؟
یه متد resizeImage توی کدتون هست از اون استفاده نکردید ؟

كيفيت عكس ها بيرون بسيار عاليه اينو قبلا براي پيكچر باكس نوشته بودم به نظر شما اگر استفاده كنم مشكلش حل ميشه من اينجا سعي ميكنم تغييرش بدم خواهشا شما هم يك بررسي بكيند چون نميدونم چطوري بايد در animation control استفاده كنم
با تشكر

M.YasPro
شنبه 16 مرداد 1389, 08:26 صبح
شما ازچه ANIMATIONCONTROL ی استفاده کردید ؟

csharpprogramer88
شنبه 16 مرداد 1389, 08:47 صبح
http://barnamenevis.org/forum/showthread.php?t=232441&page=2
پست 13

csharpprogramer88
شنبه 16 مرداد 1389, 08:48 صبح
if (imglist.Images.Count > current)
{

resizeImage(imglist.Images[current], new Size(1270, 745));

Bitmap bitmap = new Bitmap(1270, 745);
bitmap = (Bitmap)resizeImage(imglist.Images[current], new Size(1270, 745));

animationControl1.AnimatedImage = bitmap;

animationControl1.AnimationType = Animation.AnimationTypes.Fade2Images;
animationControl1.Animate(40);
current++;
timer1.Interval = 10000;
}

آخرين كد براي resize اينه

csharpprogramer88
شنبه 16 مرداد 1389, 09:08 صبح
يادمه سري قبلي كه روال برنامه اينطور بوده كه خود عكس را در ديتاببيس ذخيره كنم وقت شما را 2.5 ساعت گرفتم با تشكر از شما
كدي كه الان ميفرستم همان عكسي كه تار نشان ميده را در بانك ذخيره كردم و الان بسيار شفاف نشان ميده
ولي نميدونم چرا وقتي از مسير ميخونم مشكل داره به نظر من كه يكجاي كد ايراد داره حالا اين كد كامل را ميفرستم شما يك مقايسه بفرماييد


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Globalization;
using System.IO;

namespace lcd
{
public partial class show : Form
{
List<Bitmap> listImage = new List<Bitmap>();

SqlDataReader dr;
SqlDataAdapter da;
SqlConnection con;
SqlCommand cmd;
DataSet ds;
BindingSource bs;

public show()
{
InitializeComponent();
da = new SqlDataAdapter();
con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=lcd;Integrated Security=True");
cmd = new SqlCommand();
ds = new DataSet();
bs = new BindingSource();
}
string[] ejra = new string[100];
string[] arrpic = new string[100];
byte[] arrshow = new byte[2000000];

public static int numsaat = 0;//براي انتخاب شماره ساعت ها در فرم ساعت
int current = 0;
int i = 0;
int j = 0;
int t = 0;


public Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;

float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;

nPercentW = ((float)size.Width / (float)sourceWidth);
nPercentH = ((float)size.Height / (float)sourceHeight);

if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQua lityBicubic;

g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();

return (Image)b;
}
private void show_Load(object sender, EventArgs e)
{
//for (int k = 0; k <= j - 1; k++)
//{
cmd = new SqlCommand("select pic from pic where (id='" + 1 + "')", con);
if (con.State == ConnectionState.Closed)
{ con.Open(); }
dr = cmd.ExecuteReader();
int m = 0;
while (dr.Read())
{
byte[] dss = (byte[])dr["pic"];
MemoryStream stream = new MemoryStream(dss);
Bitmap image = new Bitmap(stream);
listImage.Add(image);
}
con.Close();
// }
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
timer1.Start();
if (timer1.Interval == 10000)// نشان دادن ساعت
{
if (numsaat == 12)
{
numsaat = 1;
}
else { numsaat++; };
saat frm = new saat();
frm.Show();
timer1.Interval = 15000;
}
else if (timer1.Interval == 15000) // فرم تاريخ
{
saat.ActiveForm.Hide();
frmdate frm = new frmdate();
frm.Show();
timer1.Interval = 16000;
}
else if (timer1.Interval == 16000)
{
saat.ActiveForm.Hide();
if (listImage.Count > current)
{
animationControl1.AnimatedImage = listImage[current];
animationControl1.AnimationType = Animation.AnimationTypes.Fade2Images;
animationControl1.Animate(40);
current++;
timer1.Interval = 10000;
}
else
{
current = 0;
animationControl1.AnimatedImage = listImage[current];
}

}

}
}




}

M.YasPro
شنبه 16 مرداد 1389, 09:25 صبح
چرا عکس ها رو تو دیتابیس ذخیره نمی کنین ؟
من به دلیل کار نکردن با این کامپوننت نمی تونم دربارش اظهار نظر کنم . متاسفانه الان هم vs در دسترسم نیست .

csharpprogramer88
شنبه 16 مرداد 1389, 09:29 صبح
يكي از دلايلش اينه كه تعداد تصاوير زياده و حجم بانك را زياد ميكنه دليل ديگه اينه كه هر تصوير 10 ثانيه اجرا ميشه و دوباره تصوير بعدي پس تعداد مراجعه به بانك خيلي زياد ميشه كه اگر از اين روش استفاده كنم بايد مديريت بهتر خودم روش اجرا كنم
در مورد تعداد تصاوير و سرعت برنامه اطلاعي داريد ؟

M.YasPro
شنبه 16 مرداد 1389, 09:48 صبح
بشتر از 1000 تا عکس میخواد بشه ؟ توی هر 10 ثانیه 1 بار ارجاع به دیتابیس که ترافیک بالایی نیست!
برای مشکل حجم عکس هات هم میتونی از تعریف فایلهای جانبی برای دیتابیس (http://www.barnamenevis.org/forum/showthread.php?t=170576) استفاده کنی .
موفق باشید .

debugger
سه شنبه 19 مرداد 1389, 17:42 عصر
استفاده از دیتا بیس برای این کار کاملا اشتباه است . البته به نظر من

شما میخوای یک Slide Show بنویسی دیگه نیازی به دیتا بیس نیست که . حتی اون مدت 10 ثانیه را می تونی کاربر خودش تعیین کنه که چند ثانیه باشه

چند خط برنامه را اومدی این همه کد برای کار با دیتا بیس نوشتی

M.YasPro
سه شنبه 19 مرداد 1389, 17:53 عصر
برنامه slide show نمیخوان بنویسن .یه نرم افزار فروش فکر می کنم باشه .
به نظر شما این درسته که اطلاعات مربوط به یه کالا توی دیتابیس باشه و عکسش روی هارد ؟
شما اینکارو ترجیح میدی ؟