2009-05-25 15 views
2

OpenFileDialogを使用して画像を読み取りました。サンプルコードは次のとおりです。データテーブル内の画像

openFileDialog1.ShowDialog(); 
if (openFileDialog1.FileName != null) 
    if (picBoardImage.Image != null) 
{ 
    picBoardImage.Image.Dispose(); 
} 
picBoardImage.Image = Image.FromFile(openFileDialog1.FileName); 

この画像をデータテーブルに保存します。どうやってやるの?

+0

記事のリンクを追加しました。更新された回答を確認してください。 – Kirtan

+0

この質問には、言語関連のタグを追加することをおすすめします。私はしたいが、私は十分な魔法のポイントがありません。 – Catchwa

+0

@Catchwa:完了。 – Kirtan

答えて

4

あなたはこのようにそれを行うことができます - 、そして、

DataTable table = new DataTable("ImageTable"); //Create a new DataTable instance. 

DataColumn column = new DataColumn("MyImage"); //Create the column. 
column.DataType = System.Type.GetType("System.Byte[]"); //Type byte[] to store image bytes. 
column.AllowDBNull = true; 
column.Caption = "My Image"; 

table.Columns.Add(column); //Add the column to the table. 

をこのテーブルに新しい行を追加し、MyImage列の値を設定します。

DataRow row = table.NewRow(); 
row["MyImage"] = <Image byte array>; 
tables.Rows.Add(row); 

EDIT:あなたはバイト配列に画像を変換についてのヘルプはthis CodeProjectの記事を見てみることができます。

+0

datatableで画像を撮る.....私はバイトでイメージを取る必要があります...どうすればいいですか?どのようにopenFileDialog1からバイト単位でイメージを取ることができますか? – Shamim

+0

記事はGIFに変換されますが、これはかなり悪い選択です。他の理由の中でも、GIFは256色しかサポートしていません。幸いにも、これはリンクされたコードのGIFをPNGに変更するだけです。 –

+1

はいマシュー、あなたの好みのフォーマットにすることができます。 – Kirtan

2

私も実際にこれを達成しようとしていました。私の解決策は実際には関与していません。

Drawing.Bitmap img = new Drawing.Bitmap("Path to image"); //Replace string with your OpenFileDialog path. 

DataColumn column = new DataColumn("ImageColumn"); 
column.DataType = System.Type.GetType("System.Drawing.Bitmap"); 

//Code to add data to a cell: 
DataRow row = new DataRow(); 
row("ImageColumn") = img; 

私にとっては、これは魅力的でした。

関連する問題