[VBA ] 系統判斷正負值的問題。
大家好,
有個問題請教。
我現在目的是要讀取一張圖片,
將相對應位置像素的顏色填入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://www.ptt.cc/bbs/Visual_Basic/M.1544582950.A.024.html
※ 編輯: chabear (118.163.157.133), 12/12/2018 11:28:33
推
12/12 11:31,
6年前
, 1F
12/12 11:31, 1F
→
12/12 13:16,
6年前
, 2F
12/12 13:16, 2F
→
12/12 17:38,
6年前
, 3F
12/12 17:38, 3F
→
12/12 17:40,
6年前
, 4F
12/12 17:40, 4F
→
12/13 14:12,
6年前
, 5F
12/13 14:12, 5F
→
12/14 00:22,
6年前
, 6F
12/14 00:22, 6F
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章