[VB6 ] 關於取得點的灰度(像素)值

看板Visual_Basic作者 (華麗的貪婪 人最美麗本性)時間18年前 (2006/12/25 04:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/3 (看更多)
最近開始接觸VB 教授就出了題目讓我寫出程式=.=|| 主要是在做影像方面的問題 首先 我就碰到個問題 就是如題要我在載入圖片後輸入X、Y座標點得到其灰度值(0~255...) 找遍網路總算找到點頭緒 但是寫起程式還是bug連連 麻煩先賢們不吝賜教 我實在困擾很久沒辦法自己解決才來詢問的<(_ _)> 以下是我的程式碼 Private Sub Command1_Click() Dim R As Integer, G As Integer, B As Integer, Gray As Single Dim c() As Long Dim I As Long, J As Long, hdc1 As Long Dim width1 As Long, heigh1 As Long width1 = Picture1.ScaleWidth heigh1 = Picture1.ScaleHeight hdc1 = Picture1.hdc ReDim c(0 To Picture1.ScaleWidth - 1, 0 To Picture1.ScaleHeight - 1) c(I, J) = Picture1.Point(I, J) For I = 0 To width1 - 1 DoEvents For J = 0 To heigh1 - 1 C(I, J) = GetPixel(hdc1, I, J) Next Next I = Text1.Text 'Text1.Text這是用來輸入的x座標的值 J = Text2.Text 'Text2.Text這是用來輸入的y座標的值 Text3.Text = Gray 出來的值 黑色的點會是0---->這應該是對的吧~ 但是只要不是黑色的點出來的就是啥1677215的值XD---->看起來好像各是RGB的值 要是我在 For J = 0 To heigh1 - 1 C(I, J) = Picture1.Point(I, J) 這兩行間加入轉rgb成灰階的函數 Gray = (R + G + B) / 3 rgb1 = RGB(Gray, Gray, Gray) SetPixel hdc1, I, J, rgb1 那麼就會出來的值都等於0... 不知道到底是哪裡出了錯 麻煩各位解答我一下好嘛? 我實在%黔驢技窮了...冏rz ............................................................................ .@@@@@@@@@@@.........@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@............. .@@@@@@@@@@@.........@@@@@@@@@@@..........@@@@@@@@@@@....@@@@@@@@@@@........ ......@@@@@@@@@@@....@@@@@@...............@@@@@@@@@@@.........@@@@@@@@@@@... ...........@@@@@@@@@@@....................@@@@@@@@@@@.........@@@@@@@@@@@... ...........@@@@@@@@@@@....................@@@@@@@@@@@.........@@@@@@@@@@@... ......@@@@@@....@@@@@@@@@@@...............@@@@@@@@@@@.........@@@@@@@@@@@... .@@@@@@@@@@@.........@@@@@@@@@@@..........@@@@@@@@@@@.........@@@@@@@@@@@... .@@@@@@@@@@@.........@@@@@@@@@@@..........@@@@@@@@@@@....@@@@@@@@@@@........ .@@@@@@@@@@@.........@@@@@@@@@@@..........@@@@@@@@@@@@@@@@@@@@@............. ............................................................................ 另外 之後我必須進行的工作是把指定的點擷取rgb色階 並任意轉換成其他rgb色階 雖然我找到了轉換的function 但是卻似乎不能放在表單裡 聽說要令外開模組不知對否? 可是怎麼連結模組裡的含數到我表單裡面的command box呢? 我找了好幾本vb的書都沒有談到模組! msdn裡面又寫的亂七八糟看不懂 不知有人可以提示一下嘛? 或是給我個網站自己讀也行(vb研究小站好像沒有耶...) 總知給我個方向也好 目前這樣像無頭蒼蠅的亂找實在很痛苦啊!!!!!!!!!!!!!!!!!!!!!!! ps:我目前這樣應該算是新手 雖然我也想讀通書籍循序漸進漸進 但是時間不允許 所以我可能很多基礎沒空打好就趕鴨子上架 因此希望指叫的大大能夠說的淺白點讓我能聽懂 當然如果是很基本的東西我會想辦法自己去搞懂或是搜尋 感謝看完這篇冗長文章及問題的大大o(〒口〒)o 麻煩不吝賜教<(_ _)> 感恩~ -- ════════════════════════════════════ 你曾經看過流星雨嗎? ▃▃ kyc 那是非常美麗的景象,虛幻的光芒,如人一生。 。  / 。 神醉夢迷,我很喜歡這個名字... 。~▂▂ 。 / 下一刻,我將連自己也遺忘;但這一刻,是屬於我的!01010。 / φby ═══════════════════════ ||════kyc01010 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.128.161

12/25 15:00, , 1F
你可以嘗試在資料進來那行設斷點!看數值是多少!再做運算
12/25 15:00, 1F
※ 編輯: geniusgod 來自: 122.126.128.161 (12/25 23:31)
文章代碼(AID): #15ZkW8O9 (Visual_Basic)
文章代碼(AID): #15ZkW8O9 (Visual_Basic)