用vb如何获取存在硬盘的bmp图片某坐标的颜色

来源:百度知道 编辑:UC知道 时间:2024/05/26 02:40:36
想用vb在后台窗口查找和存放在硬盘上相似的图片所在的窗口位置,过去听说bmp文件也能读取,我不会,请会的朋友帮说下,总而言之就是实现在不打开图片的基础上读取存在硬盘的bmp图片上指定坐标的颜色。

用二进制的方式打开文件,从第55字节开始存放的是颜色数据,存放顺序是从左到右边,*** 从下到上 ***,这点要特别注意,因此坐标与字节对应需要换算,第19-22字节存放的位图的宽度(单位是像素),第23-26字节存放高度,普通的24位位图每像素占3字节(不同位深的不同),分别为RGB,有了这些你就可以直接通过计算定点读取三字节。。即可得到该点RGB值

----------------------------------------------------------
用画图板建立一个BMP图,尺寸自定,背景一色,从(0,0)点到(X,X)点画一条45度的其它色斜线。。然后慢慢验证吧

Private Sub Command3_Click()
Dim BMPWidth As Long
Dim BMPHeight As Long
Dim LineWidth As Long
Dim ArrByte(0 To 3) As Byte
Dim R As Integer
Dim G As Integer
Dim B As Integer

Open "D:\111.bmp" For Binary As #1
Get #1, 19, ArrByte
BMPWidth = ArrByte(3) * 256 ^ 3 + ArrByte(2) * 256 ^ 2 + ArrByte(1) * 256 + ArrByte(0)
Get #1, 23, ArrByte
BMPHeight = ArrByte(3) * 256 ^ 3 + ArrByte(2) * 256 ^ 2 + ArrByte(1) * 256 + ArrByte(0)

'BMP图要求每行字节数为4的倍数,不够则填充1-3个无用字节
Select Case (BMPWidth * 3) Mod 4
Case 0
LineWidth = BMPWidth * 3
Case 1
LineWi