VB6还是VB.NET?这俩区别还不小呢。
给你个通用的思路吧,纯API实现。不管是VB6还是VB.NET,都可以使用。
另外,可以看见的红点,不会是一个像素吧?需要自己构建个判断的算法。
打开位图那些的操作我就不说了。
核心API:
COLORREF GetPixel(
HDC hdc, // handle to DC
int nXPos, // x-coordinate of pixel
int nYPos // y-coordinate of pixel
);
返回值是特定像素点的RGB值。
大致思路:
建立一个数组,里面存放的是坐标型数据。
然后循环的读取图像中的每个像素,如果接近红色,将改点坐标保持进数组。
最后分析数组,将坐标相近的像素点记录下来,再根据需要折中一点。
再提供另一条思路:
读取位图以后,建立一张和位图尺寸完全相同的位图内存,并且建立的位图像素值全为红色。
最后将两张位图的数据进行相减运算。
然后判断运算的结果中接近0的部分,这部分就是红点的位置了。
其中需要用到的别的API函数可以在MSDN中索引。
既然别的已经做好了 只需要截图 那这样
这个截图需要用到摄像头驱动的函数调用 估计别人很少知道厂家怎么写的
可以通过摄像头程序的句柄找到窗体参数 然后截取屏幕来选图
把截取屏幕的内容从剪贴板导入程序的图片内
或将截取屏幕的内容存入图片文件 再把图片文件导入程序的图片内
Me.Scale (x0, y0)-(x1, y1)
x0,y0 左上坐标
x1, y1右上坐标
PSet 方法
将对象上的点设置为指定颜色。
语法
object.PSet [Step] (x, y), [color]
PSet 方法的语法有如下对象限定符和部分:
部分 描述
object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。
Step 可选的。关键字,指定相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置的坐标。
(x, y) 必需的。 Single (单精度浮点数),被设置点的水平( x 轴)和垂直( y 轴)坐标。
color 可选的。Long (长整型数),为该点指定的 RGB 颜色。如果它被省略,则使用当前的 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。
说明
所画点的尺寸取决于 DrawWidth 属性值。当 DrawWidth 为 1,PSet 将一个像素的点设置为指定颜色。当 DrawWidth 大于 1,则点的中心位于指定坐标。
画点的方法取决于 DrawMode 和 DrawStyle 属性值。
执行 PSet 时,CurrentX 和 CurrentY 属性被设置为参数指定的点。
想用 PSet 方法清除单一像素,规定该像素的坐标,并用 BackColor 属性设置作为 color 参数。
这个方法不能用在 With匛nd With 语句块中。
最好给一张有代表性的图看看
Private Declare Function icePub_saveScreen Lib "icePubDll.dll" (ByVal bmpFile As String) As Integer
Dim str1 As String
Dim a2 As Integer
str1 = App.Path + "\1.bmp"
a2 = icePub_saveScreen(str1)
Private Declare Function icePub_saveSubScreen Lib "icePubDll.dll" (ByVal bmpFile As String, ByVal startX As Integer,ByVal startY As Integer,ByVal endX As Integer,ByVal endY As Integer) As Integer
Dim str1 As String
Dim a2 As Integer
str1 = App.Path + "\1.bmp"
a2 = icePub_saveSubScreen(str1,0,0,100,60)
网上有个鼠标取色的程序,你看一看吧,类比较长,能做到取鼠标当前位置的信息,含坐标、颜色。