关于VB用GetDIBits()获得三维数组后,如何将像素点坐标的颜色值对应?
VB用GetDIBits()获得三维数组后,得到bits(3, 0 to width, 0 to height)三维数组,width、height均以像素为单位。如何得到像素为单位的(x,y)点对应的颜色值与三维数组对应?
尝试了一天,发现都对应不上,颜色完全是混乱的。
从左下角作原点,颜色值为bits(0,*,*)、bits(1,*,*)、bits(2,*,*)对应为b、g、r我已经知道了。但还是不能对应。
比如作一个3×3的图,左下角蓝色,左上角红色,右下角白色,右上角绿色,其它均为白色,
根据对齐4像素,令行、宽为4,得到结果如下:
xyrgb
00255255255
0100255
02255255255
0325500
10255255255
11255255255
12255255255
13255255255
20255255255
212552550
22255255255
2302550
30255255255
31255255255
32255255255
33255255255
好复杂的结果,看不出怎么与原图像坐标对应。
[解决办法]
你完全可以用一个2x2大小的红绿蓝白4点图像来作测试,不是看得更清楚么