web-dev-qa-db-ja.com

System.Drawing.Imageをバイト配列に変換する方法

こんにちは、画像をバイト配列に変換して、それをSQLにbyte()として渡そうとしています。画像コンバータを使用しようとしていますが、失敗し続けます

Dim converter As New ImageConverter
nRow.Signature = converter.ConvertTo(imgSignature, TypeOf(Byte())

私が取得し続けるエラーは、バイトは式ではなく型です

10
PaShKa

VB.NETのTypeOf演算子は、あなたが思っていることを実行しません。 C#typeof演算子が原因で、やや混乱しています。 VB.NETに相当するものは、GetType()関数です。これはうまくいきます:

Dim converter As New ImageConverter
nRow.Signature = converter.ConvertTo(imgSignature, GetType(Byte()))

型コンバーターは、PNG画像形式を使用して、MemoryStreamを使用して変換を行います。

17
Hans Passant

MemoryStreamを使用できます。画像をMemoryStreamに保存すると、画像からデータのバイト配列を取得できます。

Dim ms = new MemoryStream()
imgSegnature.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg) ' Use appropriate format here
Dim bytes = ms.ToArray()
17
Reed Copsey