PDA

View Full Version : سوال: انتقال عکس در یک جدول و نمایش آن عکس



Iran58
دوشنبه 29 اردیبهشت 1393, 21:36 عصر
سلام چگونه می توانم
1) یک عکس را اول انتخاب کنم و دروین یک pictureBox1نمایش بدهم و بعد آنرا در جدول مورد نظرم ذخیره کنم
2) چگونه می توانم همان عکس را ازجدول مربوطه بخوانم ودر pictureBox1نمایش بدهم

khokhan
چهارشنبه 31 اردیبهشت 1393, 18:09 عصر
سلام چگونه می توانم
1) یک عکس را اول انتخاب کنم و دروین یک pictureBox1نمایش بدهم و بعد آنرا در جدول مورد نظرم ذخیره کنم
2) چگونه می توانم همان عکس را ازجدول مربوطه بخوانم ودر pictureBox1نمایش بدهم :لبخند: :لبخند::متفکر:

با یه متد عکس رو می آری توی پیکچر باکس :

OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "(*.JPG) تصاویر|*.jpg|" +
"(*.GIF) تصاویر|*.Gif" +
"(*.PNG) تصاویر|*.PNG" +
"" + "(*.*) تمام تصاویر|*.*";
fd.Title = "انتخاب تصویر";
fd.ShowDialog();

picimage = System.Drawing.Image.FromFile(fd.FileName);

خب حالا می خوای ذخیره کنی :

با یه متد خیلی آسون عکس داخل پیکچر باکس رو می خونی و به باینری تبدیلش می کنی تا بتونه توی بانک ذخیره بشه
و بعد به همراه سایر مقادیر مقدار باینری به دست اومده رو به جدول مربوطه ارسال می کنی


private void button1_Click(object sender, EventArgs e)
{

var db = new DataClasses1DataContext();
MemoryStream ms = new MemoryStream();
try
{
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}
catch
{
}

byte[] arrPic = ms.GetBuffer();
ms.Close();
zirna tb = new zirna()

{
fname = textBox1.Text,
family = textBox2.Text,
photo = arrPic,
};
db.zirnas.InsertOnSubmit(tb);
db.SubmitChanges();
MessageBox.Show("ثبت نام با موفقیت صورت گرفت ", "registered");
}

هنگام بازیابی هم حتما بایستی چک کنی تا فیلد تصویر داخل مدل لینک از نوع []byte باشه بعد هم با یه متد ساده ، مقادیر باینری داخل بانک رو به فرمت imge بر می گردونی
و می ریزیشون توی گرید یا پیکچر باکس :


var result = (from zirna in db.zirnas
where zirna.fname.Contains(comboBox1.Text)

select Image.FromStream(new MemoryStream(zirna.photo.ToArray())));
foreach (Image image in result)
{
// pictureBox1.Image = null;
pictureBox1.Image = (image);
}

Iran58
پنج شنبه 01 خرداد 1393, 09:21 صبح
سلام
مهندس جان سلام
من کد زیر را نوشته ام
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FMessegeBox;

namespace Cameras
{
public partial class frmInterimAdd : frmTemplate
{
public frmInterimAdd()
{
InitializeComponent();
}


private void frmInterimAdd_Load(object sender, EventArgs e)
{
CameraDataContext db = new CameraDataContext();
var listsu = from row in db.UserJobs
where row.Job_fk==1
select row;
cbSupplier.ValueMember = "Id";
cbSupplier.DisplayMember = "Family";
cbSupplier.DataSource = listsu;
///////////////////////////////////////////////////////////////
var listse = from row in db.UserJobs
where row.Job_fk == 2
select row;
cbSeconder.ValueMember = "Id";
cbSeconder.DisplayMember = "Family";
cbSeconder.DataSource = listse;
}

private void pbForm_Click(object sender, EventArgs e)
{
OpenFileDialog of = new OpenFileDialog();
Image im = null;
of.Filter = "All Pictures|*.bmp;*.gif;*.jpg|Bitmaps|*.bmp|GIFs|*.gi f|JPEGs|*.jpg";
if (of.ShowDialog() == DialogResult.OK)
{
im = new Bitmap(of.FileName);
MemoryStream ms = new MemoryStream();
im.Save(ms, im.RawFormat);
byte[] arrimageForm = ms.GetBuffer();
}
}

private void pbRecognizance_Click(object sender, EventArgs e)
{
OpenFileDialog of = new OpenFileDialog();
Image im = null;
of.Filter = "All Pictures|*.bmp;*.gif;*.jpg|Bitmaps|*.bmp|GIFs|*.gi f|JPEGs|*.jpg";
if (of.ShowDialog() == DialogResult.OK)
{
im = new Bitmap(of.FileName);
MemoryStream ms = new MemoryStream();
im.Save(ms, im.RawFormat);
byte[] arrimageRecognizance = ms.GetBuffer();
}
}


private void btnOk_Click(object sender, EventArgs e)
{
CameraDataContext db=new CameraDataContext();
Interim add=new Interim();
add.NumberSanad = txtNumberSanad.Text;
add.Date = fdDate.SelectedDateTime;
add.NumberPerssonel = txtNumberPerssonal.Text;
add.Name = txtFamily.Text;
add.Adjutance = txtAdjutance.Text;
add.Managment = txtManagement.Text;
add.Cutchery = txtCutchery.Text;
add.Precinct = txtPrecinct.Text;
add.Information = txtSpCamera.Text;
add.NumberSiral = txtNnSerial.Text;
add.numberCattles = txtNuCzttles.Text;
add.RangeWork = txtRangeWork.Text;
add.FristDate = fdFirstDate.SelectedDateTime;
add.EndDate = fdDate.SelectedDateTime;
add.Supplier_fk = Convert.ToInt32(cbSupplier.SelectedValue);
add.Seconder_fk = Convert.ToInt32(cbSeconder.SelectedValue);
add.ImageSanad = arrimageForm;
add.ImageRecognizance = arrimageRecognizance;
db.Interims.InsertOnSubmit(add);
db.SubmitChanges();
FarsiMessegeBox.Show("ok");
}
}
}
اما نمی دانم چرا
arrimageFormوarrimageRecognizance را نمی شناسد
لطفا راهنمایی کنید
من عکسها را از داخل picمی خوانم وبعداز آنکه فراخوانی کردم با دکمه ثبت می خواهم عمل ثبت را انجام بدهم

khokhan
پنج شنبه 01 خرداد 1393, 09:50 صبح
سلام
مهندس جان سلام
من کد زیر را نوشته ام

اما نمی دانم چرا
arrimageFormوarrimageRecognizance را نمی شناسد
لطفا راهنمایی کنید
من عکسها را از داخل picمی خوانم وبعداز آنکه فراخوانی کردم با دکمه ثبت می خواهم عمل ثبت را انجام بدهم:لبخند::لبخند::لبخند:
ایراد کارتون اینجاست که شما استریم رو گذاشتین توی یه رویداد دیگه
بعد می خواهید توی رویداد باتن ذخیره هم ازش استفاده کنین
بهتره ابتدا عکس رو که فراخوانی کردین بدون اینکه تبدیلی انجام بدین درون پیکچر باکس قرار بدین تا اینجا که تموم شد
بعد استریم رو در رویداد باتن ذخیره قرار بدین و تصویر موجود در پیکچرباکس رو بلافاصله به باینری تبدیل و در فیلد مربوطه قرار بدین

اینطوری :


private void btnOk_Click(object sender, EventArgs e)
{
CameraDataContext db = new CameraDataContext();
Interim add = new Interim();
//
MemoryStream ms = new MemoryStream();
try
{
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}
catch
{
}

byte[] arrimageRecognizance = ms.GetBuffer();
ms.Close();



add.NumberSanad = txtNumberSanad.Text;
add.Date = fdDate.SelectedDateTime;
add.NumberPerssonel = txtNumberPerssonal.Text;
add.Name = txtFamily.Text;
add.Adjutance = txtAdjutance.Text;
add.Managment = txtManagement.Text;
add.Cutchery = txtCutchery.Text;
add.Precinct = txtPrecinct.Text;
add.Information = txtSpCamera.Text;
add.NumberSiral = txtNnSerial.Text;
add.numberCattles = txtNuCzttles.Text;
add.RangeWork = txtRangeWork.Text;
add.FristDate = fdFirstDate.SelectedDateTime;
add.EndDate = fdDate.SelectedDateTime;
add.Supplier_fk = Convert.ToInt32(cbSupplier.SelectedValue);
add.Seconder_fk = Convert.ToInt32(cbSeconder.SelectedValue);
add.ImageSanad = arrimageForm;
add.ImageRecognizance = arrimageRecognizance;
db.Interims.InsertOnSubmit(add);
db.SubmitChanges();
FarsiMessegeBox.Show("ok");
}
private void button1_Click(object sender, EventArgs e)
{

}

Iran58
یک شنبه 11 خرداد 1393, 08:20 صبح
ایراد کارتون اینجاست که شما استریم رو گذاشتین توی یه رویداد دیگه
بعد می خواهید توی رویداد باتن ذخیره هم ازش استفاده کنین
بهتره ابتدا عکس رو که فراخوانی کردین بدون اینکه تبدیلی انجام بدین درون پیکچر باکس قرار بدین تا اینجا که تموم شد
بعد استریم رو در رویداد باتن ذخیره قرار بدین و تصویر موجود در پیکچرباکس رو بلافاصله به باینری تبدیل و در فیلد مربوطه قرار بدین

اینطوری :


private void btnOk_Click(object sender, EventArgs e)
{
CameraDataContext db = new CameraDataContext();
Interim add = new Interim();
//
MemoryStream ms = new MemoryStream();
try
{
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
}
catch
{
}

byte[] arrimageRecognizance = ms.GetBuffer();
ms.Close();



add.NumberSanad = txtNumberSanad.Text;
add.Date = fdDate.SelectedDateTime;
add.NumberPerssonel = txtNumberPerssonal.Text;
add.Name = txtFamily.Text;
add.Adjutance = txtAdjutance.Text;
add.Managment = txtManagement.Text;
add.Cutchery = txtCutchery.Text;
add.Precinct = txtPrecinct.Text;
add.Information = txtSpCamera.Text;
add.NumberSiral = txtNnSerial.Text;
add.numberCattles = txtNuCzttles.Text;
add.RangeWork = txtRangeWork.Text;
add.FristDate = fdFirstDate.SelectedDateTime;
add.EndDate = fdDate.SelectedDateTime;
add.Supplier_fk = Convert.ToInt32(cbSupplier.SelectedValue);
add.Seconder_fk = Convert.ToInt32(cbSeconder.SelectedValue);
add.ImageSanad = arrimageForm;
add.ImageRecognizance = arrimageRecognizance;
db.Interims.InsertOnSubmit(add);
db.SubmitChanges();
FarsiMessegeBox.Show("ok");
}
private void button1_Click(object sender, EventArgs e)
{

}

سلام
مهندس جان عکس را چطوری با توجه به کدم نمایش بدهم
با کد شما نتونستم
باسپاس