回 帖 发 新 帖 刷新版面

主题:小弟跪求!请各位大哥帮我改改程序

程序的目的是利用VB获取bmp格式的曲线图像中非白色的像素的位置数据,并以x,y两个分量分开保存在两个不同的数据文件中
程序中数据的颜色判定及排除和数据的存储还没完成


Private Sub Command1_Click()
Dim x As Single, y As Single, dc As Long, i As Integer, j As Integer
For i = 1 To Picture1.ScaleWidth
For j = 1 To Picture1.ScaleHeight
  bc = Picture1.Point(i, j)
?????????????????????????
??????????????
Next j
Next i
Command1.Enabled = False
Command2.Enabled = True
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
Picture1.AutoSize = True
 Command1.Enabled = True
 Command2.Enabled = False
 Picture1.Scale (0, 15)-(30, 0)
End Sub

Private Sub Text1_Change()

End Sub

Private Sub Text2_Change()

End Sub

回复列表 (共4个回复)

沙发

再加一个按钮:command2用来确定曲线颜色。

板凳

你的意思是不是先将坐标值显示在文本框?

Private Sub Command1_Click()
Dim i As Long, j As Long
Text1=""
Text2=""
For i = 0 To Picture1.ScaleWidth - 1 '注意坐标是从0开始
  For j = 0 To Picture1.ScaleHeight - 1
    if Picture1.Point(i, j)<>&H00FFFFFF& Then
      Text1=Text1 & Format(i) & ","'逗号做分隔符
   Text2=Text2 & Format(j) & ","
    end if
  Next
Next


取点完成后,最好去掉文本框中最后的逗号,再保存两个文本框中的数据即可

3 楼

估计LZ是要判断当前bc = Picture1.Point(i, j)的颜色是不是为白色(或者理解为背景色)。
如果不是,则有可是当前曲线上的一点,由此来取得曲线相关的信息??

For i = 1 To Picture1.ScaleWidth
For j = 1 To Picture1.ScaleHeight
  bc = Picture1.Point(i, j)
  if bc <>背景色 then
     把i,j的值按约定的格式保存到文件里(这里最好不要反复打开文件,可以先保存到一变量里,在两个for循环结束后再一次写入)
  end if 
Next j
Next i

4 楼


我用过了原代码,不过TEXT上没有数据

我来回复

您尚未登录,请登录后再回复。点此登录或注册