⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mducapture.bas

📁 基于VC++串口编程。经过好长时间的寻找
💻 BAS
字号:
Attribute VB_Name = "mduCapture"
Option Explicit

Public Type RECT
        left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Public Const HWND_DESKTOP = 0
' CG200SetADParam函数的ADParameter常量
Public Const AD_SOURCE = 0
Public Const AD_BRIGHTNESS = 1
Public Const AD_CONTRAST = 2
Public Const AD_HUE = 3
Public Const AD_SATURATION = 4
Public Const AD_CLAMPLEVEL = 5
Public Const AD_BANDPASS = 6
'FrmMode常量
Public Const FIELD = 1
Public Const FRAME = 0
'CG200SetColorSpace函数的彩色空间格式常量
Public Const YUV422 = 0
Public Const RGB888 = 1
Public Const RGB565 = 2
Public Const RGB555 = 3
Public Const RGB8888 = 4
'场模型的常量定义
Public Const TopField = 0
Public Const BottomField = 1
'CGI200设备驱动函数
'得到指定座标位置的RGB颜色值
Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
'初始化图像卡,获取该图像卡的设备句柄,与函数EndCG200配合使用
Public Declare Function BeginCG200 Lib "cg200d32" (ByVal iImageDevice As Integer) As Long
'释放图像卡句柄,与函数BeginCG200配合使用
Public Declare Function EndCG200 Lib "cg200d32" (ByVal hdg200 As Long) As Long
'图像卡采集图像控制
Public Declare Function CG200Capture Lib "cg200d32" (ByVal hdg200 As Long, ByVal enable As Boolean) As Long
'设置图像卡采集控制参数,包括视频源路、亮度、对比度、色调和色饱和度
Public Declare Function CG200SetADParam Lib "cg200d32" (ByVal hdg200 As Long, ByVal Param As Integer, ByVal Value As Integer) As Long
'设置图像卡输出的彩色空间格式
Public Declare Function CG200SetColorSpace Lib "cg200d32" (ByVal hdg200 As Long, ByVal Space As Integer) As Long
'设置图像卡的采集显示模式和:场方式或帧方式
Public Declare Function CG200SetDispMode Lib "cg200d32" (ByVal hdg200 As Long, ByVal Mode As Long) As Long
'设置图像显示窗口,图像卡支持图像显示的裁剪功能和按比例压缩功能
Public Declare Function CG200SetDispWindow Lib "cg200d32" (ByVal hdg200 As Long, _
                               ByVal left As Integer, ByVal Top As Integer, ByVal Width As Integer, ByVal Height As Integer) As Long
'设置视频采集输入窗口,此窗口是指视频图像输入大小,不是在VGA卡上图像显示的窗口
Public Declare Function CG200SetInpVideoWindow Lib "cg200d32" (ByVal hdg200 As Long, _
                               ByVal left As Integer, ByVal Top As Integer, ByVal Width As Integer, ByVal Height As Integer) As Long
'读取窗口内图像数据,函数读取指定窗口内图像数据,存于lpDestBuf中
Public Declare Function ReadDispWindow Lib "cg200d32" (ByVal hdc As Long, _
                           left As Long, Top As Long, Width As Long, Height As Long, _
                           lpDestBuf As String) As Long
'将图像采集到主机内存中
Public Declare Function CG200CaptureToMem Lib "cg200d32" (ByVal hdg200 As Long, MemAddr As Long, MemSize As Long, _
    IntervVSyncs As Long, bFrmMode As Integer, Sum As Long) As Long
'位屏蔽(图形迭加)控制
Public Declare Function CG200EnableOverlay Lib "cg200d32" (ByVal hdg200 As Long, ByVal enable As Integer) As Long
'获得图像卡抓图状态
Public Declare Function CG200GetSnappingStatus Lib "cg200d32" (ByVal hdg200 As Long, ByVal pbFlag As Integer) As Long
'从内存中读取所采集的图像,函数读取指定顺序编号的图像数据,存在于lpDestBuf中。
Public Declare Function CG200ReadFromMem Lib "cg200d32" (ByVal hdg200 As Long, lpSourBuf As String, MemSize As Long, _
                               Number As Long, lpDestBuf As String) As Long
'图像卡采集图像时,设置行正程起始点,以点时钟为单位,从行同步有效时开始计数。
Public Declare Function CG200SetDelay Lib "cg200d32" (ByVal hdg200 As Long, XDelay As Long, YDelay As Long) As Long
'按场设置图像对应的屏蔽掩码地址
Public Declare Function CG200SetMask Lib "cg200d32" (ByVal hdg200 As Long, Param As Long, Address As Long) As Long
'抓取一帧图像,图像卡打开图像采集,待采完一帧完整图像后即关闭。
Public Declare Function CG200Snap Lib "cg200d32" (ByVal hdg200 As Long) As Long

Public Declare Function CG200SnapOneToMem Lib "cg200d32" (ByVal HCG200 As Long, MemAddr As Long, MemSize As Long, _
                                 bFrmMode As Long) As Long
'等待奇场同步的开始,奇场同步的到来表示扫描奇数场的开始,也即帧同步的到来。
Public Declare Function CG200WaitOddVSync Lib "cg200d32" (ByVal hdg200 As Long) As Long
'等待场同步,场同步的到来表示扫描场的开始。
Public Declare Function CG200WaitVSync Lib "cg200d32" (ByVal hdg200 As Long) As Long
'声明端口操作函数
Declare Function vbInp Lib "WIN95IO.DLL" (ByVal nPort As Integer) As Integer


'将屏幕信息保存到文件中
Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private 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
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
'将图像从内存中保存成Picture
Public Sub MemToBmp(ByVal l As Integer, ByVal t As Integer, ByVal w As Integer, ByVal h As Integer, ByVal sFile As String)
Dim SourceDC As Long, DestDc As Long
Dim bHandle As Long, Wnd As Long

    SourceDC = CreateDC("DISPLAY", 0, 0, 0)
    DestDc = CreateCompatibleDC(SourceDC)
    bHandle = CreateCompatibleBitmap(SourceDC, w, h)
    SelectObject DestDc, bHandle
    BitBlt DestDc, 0, 0, w, h, SourceDC, l, t, &HCC0020
    
    Wnd = Screen.ActiveForm.hWnd
    
    OpenClipboard Wnd
    EmptyClipboard
    SetClipboardData 2, bHandle
    CloseClipboard
    DeleteDC DestDc
    ReleaseDC bHandle, SourceDC

    SavePicture Clipboard.GetData(), sFile
End Sub



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -