vb.net摄像头截图 vb调用摄像头实现拍照( 二 )


方案一:
简单点到下面这个网站下载照相控件即可满足你的需要 。
takephoto.ocx照相控件
方案二:
另外,还可以下载摄像头图像显示控件 。vbgood.com上有一个摄像头显示用的ocx控件,下载下来把它放入你的Form里 。
然后用WinAPI函数Bitblt 把摄像头控件的HDC图像,复制导Picture1.hDC即可显示出来 。这个方法代码多些 , 但还算简单 。
方案三:
最复杂的是纯粹调用WinAPI函数实现的摄像头捕捉 , 好处是不依赖任何控件,对系统兼容性很好 。但代码复杂度较高看你的VB掌握水平了 。
主要是使用以下两个API函数 。
Declare Function capCreateCaptureWindowA Lib "avicap32.dll" ( _
ByVal lpszWindowName As String, _
ByVal dwStyle As Long, _
ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Integer, _
ByVal hWndParent As Long, ByVal nID As Long) As Long
Declare Function capGetDriverDescriptionA Lib "avicap32.dll" ( _
ByVal wDriver As Integer, _
ByVal lpszName As String, _
ByVal cbName As Long, _
ByVal lpszVer As String, _
ByVal cbVer As Long) As Boolean
vb.net 截屏 ,获取活动窗口'模块中
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) _
As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Declare Function BitBlt Lib "gdi32" _
(ByVal hDestDC As Long, ByVal x As Long, _
ByVal y As Long, ByVal nWidth As Long, _
ByVal nHeight As Long, ByVal hSrcDC As Long, _
ByVal xSrc As Long, ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
'form1中
Private Sub Command1_Click()
Dim hDCtmp As Long, picWidth As Double, picHeight As Double
Dim x As Double
Dim y As Double
x = Val(Text2.Text)
y = Val(Text3.Text)
picWidth = Val(Text3.Text)
picHeight = Val(Text4.Text)
hDCtmp = GetDC(0)
BitBlt Picture1.hdc, 0, 0, picWidth, picHeight, hDCtmp, x, y, vbSrcCopy
ReleaseDC 0, hDCtmp
End Sub
目的: 将屏幕按照指定坐标和大小进行截取成图,在picture1显示
问题: 大小是相同了,为什么截取的坐标不对,只是屏幕上的左上
相信大家都用过QQ截图功能 。不过很多人并没有真正掌握好它的用法 。将QQ截图与其它截屏和制图软件配合使用,会有意想不到的效果 。
获取颜色的RGB值
我们在编辑图片或网页的时候,经常需要获取某种颜色的“RGB值” , 所以很多人都安装了第三方的颜色吸取工具 。其时用QQ截图键即可获取屏幕上任意颜色的RGB值 。
当按下“Ctrl+Shift+A”弹出“截图”提示框时,提示框中的“当前像素RGB”即为当前鼠标屏幕位置的颜色RGB值,将鼠标移动到你想查看的屏幕颜色上即可获得相应的RGB值(如图1) 。
图1精确截取图片大小
有时我们对要使用的截图尺寸有严格要求 , 比如论坛签名或QQ头像等 。用QQ截图键可以按尺寸精确截?。?一步到位无需再进行后期裁剪了 。
按下QQ截图键,按住鼠标不放选取截取范围时,在鼠标上方会有一个信息框显示当前范围的详细信息,其中“矩形大小”就是以像素来表示的图片的尺寸大小,括号内的数字分别表示的是长和高(如图2) 。松开鼠标调整截图框时 , 对照“矩形大小”就可以按需要的尺寸来精确截图范围 , 然后用鼠标点住截图框将截图框拖到要截取的图片上,双击即可获得所需尺寸的图片了 。
图2图片拼贴好帮手
大部分的截图软件一次只能截取一张图片 , 当要截取多张图片并进行拼贴组合时,就需要一张一张截取全部保存后再进行拼贴操作,非常麻烦 。

推荐阅读