作者chabear (~ 问 号 ~)
看板Visual_Basic
标题[VBA ] 系统判断正负值的问题。
时间Wed Dec 12 10:49:07 2018
大家好,
有个问题请教。
我现在目的是要读取一张图片,
将相对应位置像素的颜色填入excel工作表内。
在网路上寻找一些方法,但是我卡在了分别读取像素rgb的部份。
**问题说明**
我要的就是将像素的RGB分别取值到ColorR,ColorG,ColorB,
理论上应该都会获得一个0-255的数字,
但是在最初使用".Item(PixelX)"取值的时候, '下列程式中*** B ***部分
系统都判断此数值为一个负数。之後取ColorR,ColorG,ColorB也得到了负数。
我google之後判断应该是unsinged的问题,
问题1.尝试要宣告ColorR为 ULONG系统会提示未定义
问题2.我查过vb有移位字元<<跟>> ,为什麽我使用也是提示错误,
被迫我只能用除法解决?
有劳版友解答了,谢谢。
--------- 以下是程式 ----------
Dim ImageFile As WIA.ImageFile
Dim Vector As WIA.Vector
Dim PixelX As Long
Dim Pixel As Long
Dim ColorR As Integer
Dim ColorG As Integer
Dim ColorB As Integer
Set ImageFile = New WIA.ImageFile
With ImageFile
.LoadFile "c:\op.bmp"
Set Vector = .ARGBData
End With
If 1 Then
End If
With Vector
For PixelX = 1 To .count'*** B ***
ColorR = (.Item(PixelX) And &HFF0000) / 65536
ColorG = (.Item(PixelX) And &HFF00) / 256
ColorB = .Item(PixelX) And &HFF
'...... 填入储存格颜色
Next
End With
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.157.133
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1544582950.A.024.html
※ 编辑: chabear (118.163.157.133), 12/12/2018 11:28:33
1F:推 johnpage: 需读档头资讯,不是每个都是0-255 12/12 11:31
2F:→ chabear: 我有确定唷,照bit来算,的确只有0-255 12/12 13:16
3F:→ MOONRAKER: VBA没有shift operator 你只能*2^k或者/2^k 12/12 17:38
4F:→ MOONRAKER: 你查哪里查到的 注意看他是不是.net 没写就骂他 12/12 17:40
5F:→ chabear: 我看的是vb XD 请问vba的资讯有类似msdn的东西可以查吗 12/13 14:12
6F:→ MOONRAKER: 你看VB要注意是VBA或VB6的 现在讲到VB都是.NET 12/14 00:22