Public Sub CreateART()
Dim R As Long, G As Long, B As Long
Dim rR As Single, rG As Single, rB As Single
Dim L As Long, Max As Single, Min As Single, s As String
Dim N As Single
Dim ColPic As String
Dim CY As Integer, i As Integer
Dim m()
CancelDraw = False
ResetDraw = False
For y = 0 To ImageFrm.Pic.Height
For x = 0 To ImageFrm.Pic.Width '扫描所有像
L = ImageFrm.Pic.Point(x, y)
R = L And 256
G = L And 65280
B = L And 16711680
'R = L And &HFF
'G = (L And 65280) / 256
'B = (L And &HFF0000) / 65536
rR = R / 255: rG = G / 255: rB = B / 255Max = Maximum(rR, rG, rB)
Min = Minimum(rR, rG, rB)
N = (Max + Min) / 2If N <= 0.5 Then
i = 0
Else
i = 1
End If
Next x
Next y
能求到i的值像这样的形式吗
100011001
000101000
001111110
Dim R As Long, G As Long, B As Long
Dim rR As Single, rG As Single, rB As Single
Dim L As Long, Max As Single, Min As Single, s As String
Dim N As Single
Dim ColPic As String
Dim CY As Integer, i As Integer
Dim m()
CancelDraw = False
ResetDraw = False
For y = 0 To ImageFrm.Pic.Height
For x = 0 To ImageFrm.Pic.Width '扫描所有像
L = ImageFrm.Pic.Point(x, y)
R = L And 256
G = L And 65280
B = L And 16711680
'R = L And &HFF
'G = (L And 65280) / 256
'B = (L And &HFF0000) / 65536
rR = R / 255: rG = G / 255: rB = B / 255Max = Maximum(rR, rG, rB)
Min = Minimum(rR, rG, rB)
N = (Max + Min) / 2If N <= 0.5 Then
i = 0
Else
i = 1
End If
Next x
Next y
能求到i的值像这样的形式吗
100011001
000101000
001111110
解决方案 »
- 操作EXCEL
- 给VB版友的一份致歉信!!并散分!!
- webbrowser控件 怎么能才能实时获得它的鼠标坐标值?
- 一个类模块中如何的函数如何调用另外一个类模块中的函数
- 如何根据条件判断是否声明API???
- 网格控件问题,在线求助
- 高分在线等待!怎么样才能使筛选的数据显示在msflexgrid中啊?
- 一个很简单的问题:关于ADO的UPDATE
- 我想问,到底有没有人用VB实现了安全的多线程???
- inport,outport
- 求救:自己做了一个打印票据控件,为什么票据打印机打印出一张后,后面紧接两张空白的票据????
- 求:关于ado中,connection.open和recordset.open方法的详细参数
www.21code.com
可能找的到代码
100011001
000101000
001111110
是一个矩阵(二维数组),这完全是两码事。
Public Sub CreateART()
Dim R As Long, G As Long, B As Long
Dim rR As Single, rG As Single, rB As Single
Dim L As Long, Max As Single, Min As Single, s As String
Dim N As Single
Dim ColPic As String
Dim CY As Integer, i As Integer
Dim m()
dim gradation () as Integer
CancelDraw = False
ResetDraw = False
ImageFrm.Pic.ScaleMode=VbPixels
redim gradation (0 to ImageFrm.Pic.ScaleWidth-1,0 to ImageFrm.Pic.ScaleHeight-1)
For y = 0 To ImageFrm.Pic.ScaleHeight - 1
For x = 0 To ImageFrm.Pic.ScaleWidth - 1 '扫描所有像
L = ImageFrm.Pic.Point(x, y)
R = L And 256
G = L And 65280
B = L And 16711680
'R = L And &HFF
'G = (L And 65280) / 256
'B = (L And &HFF0000) / 65536
rR = R / 255: rG = G / 255: rB = B / 255Max = Maximum(rR, rG, rB)
Min = Minimum(rR, rG, rB)
N = (Max + Min) / 2If N <= 0.5 Then
gradation (x,y) = 0
Else
gradation (x,y) = 1
End If
Next x
Next y
只能在定义的范围内访问数组元素和集合成员。此错误有以下的原因和解决方法: 引用了不存在的数组元素.
下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。检查数组的声明以确认其上界和下界。若使用的是重新指定范围的数组,应使用 UBound 和 LBound 函数来决定数组访问。如果索引指定为变量,应检查变量名的拼写。声明数组时没有指定元素的数目。例如,下列的代码就会导致此错误:
Dim MyArray() As Integer
MyArray(8) = 234 ' 导致错误 9。Visual Basic 并不会将没有指定范围的数组自动设为 0 – 10。相反必须使用 Dim 或 ReDim 来指定数组中元素的数目。引用了不存在的集合成员。
试着使用 For Each...Next 结构代替指定元素下标。使用速写形式的下标,结果指定了错误的元素。
例如,当在集合上使用 ! 运算子时,! 自动指定了一个键。例如 object!keyname.value 和 object.item(keyname).value 是一样的。在此例中,集合中如果 keyname 表示一个错误键,错误就会产生。若要改进此错误,在集合对象中使用正确的键名称或索引。详细信息,可选取有问题的项目,并按下 F1 键。