PDA

View Full Version : مبتدی: ذخیره سازی عکس از pictureBox به صورت فایل jpg



ozzy_mra
شنبه 26 تیر 1389, 09:22 صبح
اساتید عزیز سلام
من تو برنامم یه عکس یا نامه رو از اسکنر اسکن می کنم و تو یه pictureBox نمایش می دم حالا می خوام امکان ذخیره سازی عکس تو pictureBox در قالب فایل jpg رو تو برنامم بزارم ممکنه راهنماییم کنید؟
ممنون

beh_develop
شنبه 26 تیر 1389, 09:45 صبح
زیاد سخت نیست ، فقط همین یه خط کده :


pictureBox1.Image.Save("c:\\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

hossein_ignore
شنبه 26 تیر 1389, 10:02 صبح
من اینو واست آماده کردم اومدم دیدم جوابتو دادن! حالا اینم میذارم!! این با SaveDialogBox

66hamed99
شنبه 26 تیر 1389, 10:15 صبح
[سلام دوست عزيز
ميشه يك مثال كامل همراه با توضيح مختصر در مورد نمايش عكس ذخيره شده تويsqlبرام بذاري.
ممنون ميشم

ozzy_mra
شنبه 26 تیر 1389, 10:36 صبح
برای ذخیره سازی عکس تو sql چند راه هست :
1- ذخیره مسیر ذخیره شدن عکس روی درایو (که کاری نداره)
2- ذخیره خود عکس تو sql
3- راههای دیگه ای هم هست که خیلی وارد نیستم:بامزه:
حالا برای روش دوم
ابتدا باید عکستو به صورت باینری در بیاری و تو بانکت ذخیره کنی

SqlConnection objConnection = new SqlConnection();
objConnection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string strSQL = "Update UserInfoTBL set pic= @pic where UIND = 0";
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] arrpic = ms.GetBuffer();
ms.Close();
objConnection.Open();
SqlCommand com;
com = new SqlCommand(strSQL, objConnection);
com.Parameters.Add("@pic", SqlDbType.VarBinary).Value = arrpic;
com.ExecuteNonQuery();
objConnection.Close();
MessageBox.Show("ثبت شد");
برای بازیابی عکس هم از متد زیر استفاده کن

public object fetchPic(int _lid)
{
try
{
SqlConnection con = new SqlConnection();
SqlCommand cmd;
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
con.Open();
cmd = new SqlCommand("select pic from UserInfoTBL WHERE LID = @lid", con);
cmd.Parameters.AddWithValue("@lid", _lid);
object x = cmd.ExecuteScalar();
con.Close();
return x;
}
catch (Exception ex)
{
MessageBox.Show("خطا در متد دریافت عکس کاربر" + "\n" + "\n" + ex.ToString());
return null;
}
}
مثلاً این یه متد از کلاس ِإdboperation هست بعد اینجوری به picturebox بایندش کن

DBOperation dbobj = new DBOperation();
object xPic = dbobj.fetchPic(LoginIDD);
if (xPic == null)
pictureBox1.Image = null;
else
{
byte[] arrPic = (byte[])(xPic);
MemoryStream ms = new MemoryStream(arrPic);
pictureBox1.Image = Image.FromStream(ms);
}