关于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
好复杂的结果,看不出怎么与原图像坐标对应。
...全文
432 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingOfPorcupine 2011-12-18
  • 打赏
  • 举报
回复
斜的
...............
qinjueping 2010-10-13
  • 打赏
  • 举报
回复
与4对齐是什么意思?我用100*100的图片,可是得出结果乱的,好像与pictureBox 的宽和高有关系的!
lzqgj 2010-05-28
  • 打赏
  • 举报
回复
哈哈。明白了。就是宽要与4对齐的原因。高不用对齐。谢谢!
lzqgj 2010-05-28
  • 打赏
  • 举报
回复
试过3×3图片将宽与4对齐,高不用对齐,可以得到对应每点颜色值。再试试其它大小的图片。
lzqgj 2010-05-28
  • 打赏
  • 举报
回复
2×2我试过了,完全没问题。但3×3的就不行
熊孩子开学喽 2010-05-27
  • 打赏
  • 举报
回复
你完全可以用一个2x2大小的红绿蓝白4点图像来作测试,不是看得更清楚么

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧