疑问:这个下标为啥要这样计算?

img

为啥要buffer[y*mWidth+x] = _color; 这个下标为啥要这样计算?

buffer是用一维数组来储存图片的二维数据
比如34列数据
a0 a1 a2 a3
b0 b1 b2 b3
c0 c1 c2 c3
buffer用一维数组线性存储就是:
buffer = {a0 a1 a2 a3 b0 b1 b2 b3 c0 c1 c2 c3}
buffer[y*mWidth+x] 中y为行下标,x为列下标,mWidth是每行的列数
如y行下标是2,x列下标是1,mWidth每行的列数是4
y*mWidth+x 就是把原本的二维下标转成对应的一维数组下标
2*4+1 = 9 就是c1的位置

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

我怎么知道,你用的是什么库?每个库的API用法都不一样,就是这样规定的吧,大概是用一维数组储存屏幕的二维数组

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632