关于VB用GetDIBits()获得三维数组后,如何将像素点坐标的颜色值对应?
lzqgj 2010-05-27 10:03:26 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,得到结果如下:
x y r g b
0 0 255 255 255
0 1 0 0 255
0 2 255 255 255
0 3 255 0 0
1 0 255 255 255
1 1 255 255 255
1 2 255 255 255
1 3 255 255 255
2 0 255 255 255
2 1 255 255 0
2 2 255 255 255
2 3 0 255 0
3 0 255 255 255
3 1 255 255 255
3 2 255 255 255
3 3 255 255 255
好复杂的结果,看不出怎么与原图像坐标对应。