구글이라던지 이곳저곳 찾아 보면 상당히 많은 예제가 나오는거 같다.
GsiClip을 제작중에 DB에 이미지를 데이터로 추가 해야 하는 부분에
단위 테스트에 사용한 소스 코드임. (테스트 수행)
private void button1_Click(object sender, EventArgs e)
{
// 이미지를 DB로 저장한다.
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
ImageSave(openFileDialog1.FileName);
MessageBox.Show("저장완료");
}
}
private void button2_Click(object sender, EventArgs e)
{
// 이미지를 DB에서 로드한다.
dsImageTableAdapters.Test1TableAdapter adapter =
new ImageSaveDB.dsImageTableAdapters.Test1TableAdapter();
dsImage.Test1DataTable table =
new dsImage.Test1DataTable();
adapter.Fill(table);
if (table.Count > 0)
{
pictureBox1.Image = byteArrayToImage(table[0].Content2);
}
}
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
byte[] ReadFile(string sPath)
{
byte[] data = null;
//
FileInfo fInfo = new FileInfo(sPath);
long numBytes = fInfo.Length;
//
FileStream fStream = new FileStream(sPath, FileMode.Open, FileAccess.Read);
//
BinaryReader br = new BinaryReader(fStream);
//
data = br.ReadBytes((int)numBytes);
return data;
}
private void ImageSave(string filename)
{
byte[] imageData = ReadFile(filename);
//
dsImageTableAdapters.Test1TableAdapter adapter =
new ImageSaveDB.dsImageTableAdapters.Test1TableAdapter();
adapter.Insert(imageData);
}