#.net #vb.net #bitmap
#.net #vb.net #растровое изображение
Вопрос:
Ошибка: «‘ImageConverter’ не удается преобразовать ‘System.Рисование.Растровое изображение «в «систему.Байт’.»
dim YZ_2D_blobmap( 150 * 100 * 3 ) as byte
dim heatmap_PictureBox_Bitmap as Bitmap
' . . .heatmap_PictureBox_Bitmap loaded with 150 x 100 bitmap
YZ_2D_blobmap = Bitmap_to_Bytes( heatmap_PictureBox_Bitmap ) <<<<<<< error
bytes_to_file( YZ_2D_blobmap, YZ_2D_BLOBMAP_BLB_PATHNAME )
Function Bitmap_to_Bytes( img as Bitmap ) as byte()
dim bytes_ImageConverter as ImageConverter = New ImageConverter()
return bytes_ImageConverter.ConvertTo( img, GetType( byte ))
end function
Sub bytes_to_file( byte_buffer, pathname )
system.io.file.writeAllBytes( pathname, byte_buffer )
End Sub
Комментарии:
1. Как, по-вашему, должно произойти это «преобразование»? Обычный способ «преобразовать» объект изображения в массив байтов — просто сохранить его, как определенный тип файла изображения , в поток байтов.
Ответ №1:
Вы указываете ImageConverter
преобразовать Bitmap
в Byte
, а не в Byte
массив. Это:
return bytes_ImageConverter.ConvertTo( img, GetType( byte ))
должно быть так:
Return bytes_ImageConverter.ConvertTo(img, GetType(Byte()))
В сообщении об ошибке даже говорится, что:
‘ImageConverter’ не удается преобразовать ‘System.Рисование.Растровое изображение «в «систему.Байт’.
Там ничего нет о массивах.