一个设备由一个单片机控制,现在这个设备要显示图片,这个图片可以由使用者选择,而一般的BMP图片是256色或更高的,而这个设备只能显示7色,现在需要把一个使用者选择好的图片输入到单片机中,并由单片机控制在设备上显示,我现在想问的是,如何把一个图片的点阵输入到单片机中,哪位哥哥曾经做过,给个提示.在此谢谢了.

解决方案 »

  1.   

    Private Sub Command1_Click()
       Dim BytDate() As Byte
       Dim FileName As String
       Dim lngFile As Long
       Dim i As Long
            FileName = "D:\Image\Oct2003.BMP "              '取得文件名及路径
            lngFile = FileLen(FileName) \ 1024         '取得文件长度
            Me.ProgressBar1.Min = 0
            Me.ProgressBar1.Max = lngFile + 1
            ProgressBar1.Value = 0
            For i = 0 To lngFile
                ReDim myFile(1023) As Byte                 '初始化数组
                Open FileName For Binary As #1             '打开文件
                Get #1, i * 1024 + 1, myFile                        '将文件写入数组
                Close #1                                   '关闭文件
                Winsock1.SendData myFile                   '发送
                DoEvents
                ProgressBar1.Value = ProgressBar1.Value + 1
            Next i
            
             If ProgressBar1.Value = ProgressBar1.Max Then MsgBox "OK"
    在那边照着写文件,格式是BMP的。再在显示器上用一个picbox显示就是了!
     里面的winsock改为工业控制空件mscomm!同样也是发送2进制文件。
      

  2.   

    BMP本身就是二进制的点阵
    去掉BM头直接传即可
      

  3.   

    Featured(我握着爱情的门票静静排队……) 
    BMP文件的编码方式是怎么样的,文件头是占了多少字节
      

  4.   

    我在做北京环线地铁广告项目就遇到这个问题。
    最大的难点是,图像要抖动处理(或其它颜色处理),否则这么多颜色下载下去,它显示一定失真。BMP的格式在网上搜索一下即可获取。
    '//////////////// 设备无关位图 (DIB)的大小及颜色信息  (它位于 bmp 文件的开头处)
    Private Type BITMAPINFOHEADER
        biSize As Long                         '结构长度
        biWidth As Long                        '指定位图的宽度,以像素为单位
        biHeight As Long                       ' "    "   高度   "   "
        biPlanes As Integer                    '指定目标设备的级数(必须为 1 )
        biBitCount As Integer                  '每一个像素的位(1,4,8,16,24,32)
        biCompression As Long                  '指定压缩类型(BI_RGB 为不压缩)
        biSizeImage As Long                    '指定图象的大小,以字节为单位
        biXPelsPerMeter As Long                '指定设备水平分辨率,以每米的像素为单位
        biYPelsPerMeter As Long                '垂直分辨率,其他同上
        biClrUsed As Long                      '在颜色表中实际使用的色彩索引的个数,用O表示全要使用
        biClrImportant As Long                 '指定认为重要的颜色索引个数,用 0 表示所有颜色均采用
    End Type
    '//////////////// DIB 的大小你颜色信息
    Private Type BITMAPINFO
        bmiHeader As BITMAPINFOHEADER
        bmiColors(0 To 255) As RGBQUAD
    End Type-----------------------
    有什么疑问,你可以给我发邮件:[email protected]