• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

VB从图片框控件取得颜色

发布: 2007-6-21 21:57 | 作者:   | 来源:   | 查看: 204次 | 进入软件测试论坛讨论

领测软件测试网

   
  Point方法返回图片框控件里指定X,Y坐标处的颜色。要获得鼠标指针所在位置的颜色,就要将这样的代码放入用户该控件的MouseMove事件过程里。MouseMove过程会被传递给指针的当前X,Y坐标,这就让这段代码变容易了:

Private Sub Picture1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)

Dim rgb As Long

rgb = Picture1.Point(X, Y)

End Sub

Point方法所返回的值是一个Long类型,它会给用于颜色的RGB值编码。为了能够被有效地使用,这个被编码的值必须被分成独立的R、G、B组件,它们每个都十进制0-255或者十六进制00-FF范围内的的一个整数。如果使用十六进制表示的话,那么Point返回的值就是:

00BBGGRR

使用十六进制标示法会让颜色的提取操作变容易。如果RGB是由Point方法返回的值,那么下面就是这个提取操作如何进行的细节:

red = rgb Mod &H100
green = (rgb \ &H100) Mod &H100
blue = (rgb \ &H10000) Mod &H100

在这里,最终的MouseMove事件过程显示了出来。要看到这个过程的实际使用,就要创建一个标准的EXE项目,并在表单上放一个图片框和一个文本框(Text Box)。将图像上传到图片框里,然后运行该项目。当鼠标移动到这个图像上的时候,文本框里就会显示指针处像素的RGB值。

Private Sub Picture1_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)

Dim rgb As Long
Dim r As String, g As String, b As String

rgb = Picture1.Point(X, Y)
r = CStr(rgb Mod &H100)
g = CStr((rgb \ &H100) Mod &H100)
b = CStr((rgb \ &H10000) Mod &H100)

Text1.Text = "R " & r & ", G " & g & ", B " & b

End Sub

如果你只想看到你点击到的那个像素的RGB值,你可以将相同的代码放到MouseDown事件过程里。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网