作者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/m.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