看板 Visual_Basic 關於我們 聯絡資訊
大家好, 有個問題請教。 我現在目的是要讀取一張圖片, 將相對應位置像素的顏色填入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
johnpage: 需讀檔頭資訊,不是每個都是0-255 12/12 11:31
chabear: 我有確定唷,照bit來算,的確只有0-255 12/12 13:16
MOONRAKER: VBA沒有shift operator 你只能*2^k或者/2^k 12/12 17:38
MOONRAKER: 你查哪裡查到的 注意看他是不是.net 沒寫就罵他 12/12 17:40
chabear: 我看的是vb XD 請問vba的資訊有類似msdn的東西可以查嗎 12/13 14:12
MOONRAKER: 你看VB要注意是VBA或VB6的 現在講到VB都是.NET 12/14 00:22