一幅BMP图片,需要通过串口发送出去,想到了把图片二值化处理后发出去,但我无法实现。请高手指点方向!

解决方案 »

  1.   


    Option Explicit
    Private Type bitmapfileheader
        bftype As Integer
        bfsize As Long
        bfreserved1 As Integer
        bfreserved2 As Integer
    bfoffbits As Long
    End Type
    '头信息
    Private Type bitmapinfoheader
        bisize As Long
        biwidth As Long
        biheight As Long
        biplanes As Integer
        bibitcount As Integer
        bicompression As Long
        bisizeimage As Long
        bixpelspermeter As Long
        biypelspermeter As Long
        biclrused As Long
        biclrimportant As Long
    End Type
    Private Type RGBQUAD
            rgbBlue As Byte
            rgbReserved As Byte
            rgbRed As Byte
            rgbGreen As Byte
    End TypeDim FileHeader As bitmapfileheader
    Dim FileInfoHeader As bitmapinfoheader
    Dim Palettesize As Integer
    Dim BMPFileToBinary(1024, 1024, 2) As BytePrivate Sub btnBMP_Click()
        Dim lngBMPWidth As Long     'BMP图片的宽
        Dim lngBMPHeight As Long    'BMP图片的高
        Dim intBMPBitCount As Long  'BMP图片的位数
        Dim bytPoint As Byte
        Dim bytPalentry As Byte
        Dim bytP As Byte
        Dim intP As Integer
        Dim intT As Integer
        Dim intC As Integer
        Dim intD As Integer
    On Error GoTo errSub
        Open "D:\Test.bmp" For Binary As #1
        Get #1, , FileHeader
        Get #1, , FileInfoHeader
        lngBMPWidth = FileInfoHeader.biwidth
        lngBMPHeight = FileInfoHeader.biheight
        intBMPBitCount = FileInfoHeader.bibitcount    For intP = 0 To lngBMPHeight - 1
            For intT = 0 To lngBMPWidth - 1
                For intC = 0 To 2
                    Get #1, , bytPoint
                    BMPFileToBinary(intT, intP, intC) = bytPoint
                Next intC
            Next intT
        Next intP
           
        Close #1
        Exit Sub
    errSub:End Sub
      

  2.   

    http://topic.csdn.net/u/20100917/13/5d5999e4-3032-4853-9f60-4ef4c1c4a622.html