‘ImageConverter’ не может преобразовать растровое изображение в массив байтов. выдает ошибку

#.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.Рисование.Растровое изображение «в «систему.Байт’.

Там ничего нет о массивах.