一个设备由一个单片机控制,现在这个设备要显示图片,这个图片可以由使用者选择,而一般的BMP图片是256色或更高的,而这个设备只能显示7色,现在需要把一个使用者选择好的图片输入到单片机中,并由单片机控制在设备上显示,我现在想问的是,如何把一个图片的点阵输入到单片机中,哪位哥哥曾经做过,给个提示.在此谢谢了.
解决方案 »
- 请问excel中“转换为数字”如何用VB代码或宏实现?
- 高分求教如何将Wav文件转换成Wma文件。
- datagrid 右键选择属性出现property pages里面的columns只有 0和1怎么只有2个,我想多加几个(其实我就是想控制datagrid所显示的列和列的名
- 急!!!安装vb时,报告路径/文件访问错误
- 一个关于回调函数的问题
- 帮你轻轻松松读完重点大学计算机系课程
- vb实现用Word 和Excel打印预览的问题!!看一下源程序!!!在线等!!!
- 在一列中count分组,sql语句,请教~!
- 请问如何在VB的窗体中调用IE浏览器?
- 刚接触到VB中的类,看到类向导生成的类中有两个构造函数,两个析构函数?郁闷!
- 求能够切换插入/改写状态的控件!支持~TextBox combobox~
- VC怎样调用VB的OCX和DLL
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进制文件。
去掉BM头直接传即可
BMP文件的编码方式是怎么样的,文件头是占了多少字节
最大的难点是,图像要抖动处理(或其它颜色处理),否则这么多颜色下载下去,它显示一定失真。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]