PDA

View Full Version : اشکال در کار با imagelist



mina1363
دوشنبه 28 مرداد 1387, 10:54 صبح
سلام
خوب پیدا کردم چه طور عکس های کاربر را بریزم داخل picturebox , imagelist ولی چه طور باید اسم این عکس ها را در db ذخیره کنم و از خود عکس ها یک کپی داخل یک فولدر در root برنامه ام قرار بدم؟

برای دکمه های بعد و قبل چه کدی باید بنویسم؟

راستی یه اشکال دیگه این عکس ها وقتی داخل picturebox به نمایش در می آیند بند انگشتی هستند سایز picturebox بزرگ است ولی عکسها کاملا ریز هستند چه کار کنم عکسها بزرگتر نمایش داده بشند؟

pesare_ariyayi
دوشنبه 28 مرداد 1387, 11:26 صبح
شما دوباره 1 بحث جدید راه انداختین؟!
خوب برای ذخیره کردن عکس توی db چند تا مرحله رو باید طی کنی.
اول باید یه datasource درست کنی که با این کار vs.net یک dataset و dataAdapter بهت میده. خیلی راحت عکسهای جدید رو به dataset اضافه می کنی, بعضیا رو از dataset حذف می کنی و وقتی می خوای تغییرات رو ذخیره کنی بوسیله ی dataAdapter دیتابیس رو update می کنی. خوبی کار با این اشیا (dataAdapter و dataset) اینه که کارها رو شی گرا کرده . دیگه زیاد درگیر connection بازی با دیتابیس نمیشی. اگه سر کارهای دیتابیس مشکل داری بهتره بری تو بخش دیتابیس چون این قصه سر درازی داره...
تو بحث قبلی که درست کرده بودی راجع به کپی کردن (بهتر بگم ذخیره کردن) عکس گفته بودم. میتونی از این متد استفاده کنی.


image[index].save(filename)
که index همون شماره عکس از آرایه هست که می خوای ذخیره کنی. filename هم آدرس و اسم فایلی هست که شما باید آدرس root برنامت رو بزاری .root رو با "/.." مشخص می کنن. مثلاً اگه بخوای بگی فلان عکس رو با اسم image تو root ذخیره کن باید بنویسی:


image[index].save("../image.jpg")
راجع به آخرین سوالت: عکسها به همون سایزی که هستن تو picturebox نشون داده می شن. برا بزرگ کردنشون باید رو تصویر پردازش کنی

mina1363
دوشنبه 28 مرداد 1387, 11:41 صبح
و حالا با دکمه ها چه طور به عکسهای بعدی و قبلی دسترسی پیداکنم؟
شما قرار شد کد در اختیارم بذارید!!!!

pesare_ariyayi
دوشنبه 28 مرداد 1387, 13:16 عصر
قرار شد؟!
خوب دو تا دکمه درست می کنی به نام های next , privious و متغیر i رو که شمارشگر تصویر در حال نمایش هست رو به صورت private توکلاس فرم مقدار دهی 0 می کنی:


private int i = 0;
private void Next_Click(object sender, EventArgs e)
{
if (i < this.Images.Count())
{
i++;
}
picBox.Image = (Image)this.Images[i];

}

private void privious_Click(object sender, EventArgs e)
{
if (i >= 0)
{
i--;
}
picBox.Image = (Image)this.Images[i];
}

کدها رو یه سری debug کن. خودم تستشون نکردم.

mina1363
دوشنبه 28 مرداد 1387, 13:50 عصر
با وجودی که احتمال دادم باید پیچیده تر از این باشه ولی باز هم تستش کردم اشتباه است ؟؟!!!!!!!

pesare_ariyayi
چهارشنبه 30 مرداد 1387, 07:13 صبح
خوب شما بفرمایید کجاش اشتباهه. چون ساختار کد متمئناً همینطوره. ممکنه تو syntax یا بعضی از defineها اشتباه باشه.