作者geniusgod (华丽的贪婪 人最美丽本性)
看板Visual_Basic
标题[VB6 ] 关於取得点的灰度(像素)值
时间Mon Dec 25 05:36:26 2006
最近开始接触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
1F:推 gofin:你可以尝试在资料进来那行设断点!看数值是多少!再做运算 12/25 15:00
※ 编辑: geniusgod 来自: 122.126.128.161 (12/25 23:31)