Как конвертировать System.Drawing.Image в байт-массив?

Привет, Я пытаюсь преобразовать изображение в массив байтов, чтобы передать его в sql как byte(). Я пытаюсь использовать Image Converter, но он продолжает терпеть неудачу
Dim converter As New ImageConverter
nRow.Signature = converter.ConvertTo(imgSignature, TypeOf(Byte())

Ошибка, которую я продолжаю получать, это байт, это выражение типа

Ответ 1

Оператор VB.NET TypeOf не делает то, что вы думаете, он делает. Несколько сбивает с толку, возможно, из-за оператора typeof С#. Эквивалентом VB.NET является функция GetType(). Это прекрасно работает:

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

Преобразователь типов использует MemoryStream для выполнения преобразования, используя формат изображения PNG.

Ответ 2

Вы можете использовать MemoryStream. Сохраняя изображение в MemoryStream, вы можете получить массив байтов данных из изображения:

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