PDA

View Full Version : مشکل در تبدیل عکس picturebox به آرایه ای از بایت ها



adineh67
پنج شنبه 21 اسفند 1393, 19:26 عصر
سلام به همگی
من توی برنامم یه تصویر از طریق اسکنر میگیرم و توی پیکچر باکس نمایش میدم تا اینجای کارو مشکلی ندارم.
حالا میخوام اون تصویر نمایش داده شده رو درون دیتابیس ذخیره کنم موقع ذخیره پیغام میده که خاصیت ایمیج خالیه در صورتیکه دارای تصویر هست واسه رفع این مشکل به یه چیزی مثل رفرش نیاز دارم ولی نمیدونم چجوری
ممنون میشم راهنماییم کنید

Mahmoud.Afrad
پنج شنبه 21 اسفند 1393, 20:14 عصر
کد بزار و بگو به چه خطی خطا میگیره. کدی هم که عکس اسکن شده رو به پیکچرباکس میدی رو بزار.

adineh67
پنج شنبه 21 اسفند 1393, 20:51 عصر
کد بزار و بگو به چه خطی خطا میگیره. کدی هم که عکس اسکن شده رو به پیکچرباکس میدی رو بزار.

کد اسکنم درست کار میکنه و عکس اسکن شده رو نمایش میده فقط تو ثبت اطلاعات مشکل پیش میاد:


string titlegroup = combogroup.SelectedValue.ToString();
int tg = Convert.ToInt32(combogroup.SelectedValue.ToString( ));
string codestr=code11.SelectedText.ToString();
MemoryStream ms = new MemoryStream();
var img = this.pictureBox1.Image;
pictureBox1.Image.Save(ms, img.RawFormat);
byte[] arrpic = ms.GetBuffer();
CNRL.InsertImage(tg, codestr, arrpic);
MessageBox.Show("اطلاعات با موفقیت ثبت شد");


و توی این خط ارور میده که مقدار image برابر null هست :



pictureBox1.Image.Save(ms, img.RawFormat);



اینم از اروری که میده


129394

Mahmoud.Afrad
جمعه 22 اسفند 1393, 16:44 عصر
کدی که عکسو به پیکچرباکس انتساب میدی رو بزار.
عکس داخل پیکچرباکس نشون داده میشه؟

adineh67
جمعه 22 اسفند 1393, 17:29 عصر
کدی که عکسو به پیکچرباکس انتساب میدی رو بزار.
عکس داخل پیکچرباکس نشون داده میشه؟
بله عکس نمایش داده میشه



try
{
if (this.twainScannerDialog1.BeginShowDialog(this, this.EndScan, null) != null)
{
this.Enabled = false;
}
else
{
MessageBox.Show("Error");
}
}
catch
{
MessageBox.Show("ارتباط با اسکنر قطع است ، لطفاٌ بررسی کنید", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Error);
}






private void EndScan(IAsyncResult ar)
{
this.Enabled = true;
System.Drawing.Image[] images = this.twainScannerDialog1.EndShowDialog(ar);
if ((images == null) || (images.Length <= 0)) return;

var oldimg = this.pictureBox1.Image;
this.pictureBox1.Image = images[0];
if (oldimg != null)
{
oldimg.Dispose();

}

}

Mahmoud.Afrad
جمعه 22 اسفند 1393, 19:51 عصر
خطا ربطی به null بودن image نداره.

به اینصورت بنویس

string titlegroup = combogroup.SelectedValue.ToString();
int tg = Convert.ToInt32(combogroup.SelectedValue.ToString( ));
string codestr = code11.SelectedText.ToString();
ImageConverter converter = new ImageConverter();
byte[] arrpic = (byte[])converter.ConvertTo(img, typeof(byte[]));
CNRL.InsertImage(tg, codestr, arrpic);
MessageBox.Show("اطلاعات با موفقیت ثبت شد");