用vb如何获取存在硬盘的bmp图片某坐标的颜色
来源:百度知道 编辑:UC知道 时间:2024/05/26 02:40:36
用二进制的方式打开文件,从第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