Как конвертировать 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()