2 chen lady chen_lady 于 2015.06.26 15:10 提问

VB GetDIBits 方法读取图像像素问题

GetDIBits(Picture1.hdc, Picture1.Picture.Handle, 0&, iHeight, bits(0, 0, 0), bi24BitInfo, 0&)
就是用DIB方法获取图片像素坐标很困乱,就横坐标很混乱,纵坐标没问题,得到的颜色点坐标左边都不是从0开始的 例如:

(5,8) (6,8) (7,8) (8,8) (0,8) (1,8) (2,8) (3,8) (4,8)
(6,7) (7,7) (8,7) (0,7) (1,7) (2,7) (3,7) (4,7) (5,7)
(7,6) (8,6) (0,6) (1,6) (2,6) (3,6) (4,6) (5,6) (6,6)
(8,5) (0,5) (1,5) (2,5) (3,5) (4,5) (5,5) (6,5) (7,5)
(0,4) (1,4) (2,4) (3,4) (4,4) (5,4) (6,4) (7,4) (8,4)
(1,3) (2,3) (3,3) (4,3) (5,3) (6,3) (7,3) (8,3) (0,3)
(2,2) (3,2) (4,2) (5,2) (6,2) (7,2) (8,2) (0,2) (1,2)
(3,1) (4,1) (5,1) (6,1) (7,1) (8,1) (0,1) (1,1) (2,1)
(4,0) (5,0) (6,0) (7,0) (8,0) (0,0) (1,0) (2,0) (3,0)
要怎么把它的横坐标0点从左边开始呢?怎么对齐?

3个回答

chen_lady
chen_lady   2015.06.29 14:02
已采纳

终于调试好了,原来是我的宽没跟数组对齐

caozhy
caozhy   Ds   Rxr 2015.06.26 15:16

横坐标如果是连续的话,可以+宽度-偏移量再取模。
比如
(3,1)这个,宽度是9,偏移量(最左边的)是3,那么就是(3+9-3)Mod 9=0
(4,1) (4+9-3) Mod 9=1
...
这样它们就从0开始编号了。

chen_lady
chen_lady 我现在被它搞得头晕晕的 <.-.>
2 年多之前 回复
chen_lady
chen_lady 请问你有没有做过类似的DIB方法读图像的,我这只是在猜测它图像是这样的,实际我也不知道它是怎么排的,我不知道它第一个点到底偏移了多少,也谢谢你的回答
2 年多之前 回复
chen_lady
chen_lady   2015.06.26 15:22

请问你有没有做过类似的DIB方法读图像的,我这只是在猜测它图像是这样的,实际我也不知道它是怎么排的,我不知道它第一个点到底偏移了多少,也谢谢你的回答

Csdn user default icon
上传中...
上传图片
插入图片