3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(.Net)Imageオブジェクトとバイト配列相互変換

(.Net,SQL)SQL Server 2005に画像データ(バイナリ)を保存したいの追加情報です。

この記事の最後のほうで、一時ファイルを使わずに直に Image とバイト配列に変換できる方法を探す と言ってましたが、@IT バイト配列→画像オブジェクト/画像オブジェクト→バイト配列の変換を行うには?で載ってました。

ということで下記のように(@ITのコードそのままですが)したら、DBへの保存とDBからの読み出しともにOKでした。

※picPohto1 はPictureBoxコントロール

'保存

'Imageをバイナリ(Byte配列)にコンバートする

Dim imgconv As New ImageConverter()

Dim byt1 As Byte() = CType(imgconv.ConvertTo(Me.picPhoto1.Image, GetType(Byte())), Byte())

'DataSetを使ってデータ挿入

Dim adp As DataSet1TableAdapters.CustomerTableAdapter = New DataSet1TableAdapters.CustomerTableAdapter();

adp.InsertQuery(1, "テスト太郎", byt1);

 

'読み込み

Dim tbl As New DataSet1.CustomerDataTable()

adp.FillByID(tbl, 1)

'DBにはバイナリ(Byte配列)なので、Imageにコンバートする

Dim imgconv2 As New ImageConverter()

Me.picPhoto1.Image = CType(imgconv2.ConvertFrom(tbl.Rows(0).Item("img")), Image)