GetBitmapBits得到的数据是负数

li123beili 2017-04-18 05:29:30
我用GetBitmapBits .Image, UBound(a),a(1) 获取picture数据 数组a是long型 从本地加载图片后得到的值都是0-16777215
但是截图或复制后得到的都不是 所有数组的后8位都成了255 而不是0
截图
lngDesktopHwnd = GetDesktopWindow
lngDesktopDC = GetDC(lngDesktopHwnd)

Call BitBlt(Picture1.hdc, 0, 0, 1000, 600, lngDesktopDC, 0, 0, SRCCOPY)
请问这是怎么回事如何才能得到0-16777215 正确的范围
...全文
200 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2017-04-18
  • 打赏
  • 举报
回复
你用 Long类型的数组获取数据,可能是因为“Alpha通道”的数值是255(不透明),造成“颜色值”为负数的吧。 如果你想得到“本身”的颜色值,可以用位运算“去掉”Alpha通道的值,它就是正数了。 &HFFFFFF And a(1)

1,486

社区成员

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

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