html5微信拍照后自动刷新,用html5写微信页面,上面有相机功能,

求一个控制摄像头小程序源码,要求VC下编译运行

VC-摄像头控制SDK源码

#include

#include

#include

#pragma comment(lib,"vfw32.lib")

HWND ghWndCap ; //捕获窗的句柄

CAPDRIVERCAPS gCapDriverCaps ; //视频驱动器的能力

CAPSTATUS gCapStatus ; //捕获窗的状态

char szCaptureFile[] = "MYCAP.AVI";

char gachBuffer[20];

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

LRESULT CALLBACK StatusCallbackProc(HWND hWnd,int nID,LPSTR lpStatusText)

{

if(!ghWndCap)return FALSE;//获得捕获窗的状态

capGetStatus(ghWndCap,&gCapStatus,sizeof(CAPSTATUS));//更新捕获窗的大小

SetWindowPos(ghWndCap,NULL,0,0,gCapStatus.uiImageWidth,gCapStatus.uiImageHeight,SWP_NOZORDER|SWP_NOMOVE);

if(nID==0){//清除旧的状态信息

SetWindowText(ghWndCap,(LPSTR)"hello");

return (LRESULT)TRUE;

}//显示状态ID和状态文本

wsprintf(gachBuffer,"Status# %d: %s",nID,lpStatusText);

SetWindowText(ghWndCap,(LPSTR)gachBuffer);

return (LRESULT)TRUE;

}

LRESULT CALLBACK ErrorCallbackProc(HWND hWnd,int nErrID,LPSTR lpErrorText)

{

if(!ghWndCap)return FALSE;

if(nErrID==0)return TRUE;//清除旧的错误

wsprintf(gachBuffer,"Error# %d",nErrID);//显示错误标识和文本

MessageBox(hWnd, lpErrorText, gachBuffer,MB_OK | MB_ICONEXCLAMATION);

return (LRESULT) TRUE;

}

LRESULT CALLBACK FrameCallbackProc(HWND hWnd,LPVIDEOHDR lpVHdr)

{

FILE *fp;

fp=fopen("caram.dat","w");

if(!ghWndCap)return FALSE;//假设fp为一打开的.dat文件指针

fwrite(lpVHdr->lpData,1,lpVHdr->dwBufferLength,fp);

return (LRESULT)TRUE;

}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)

{

static TCHAR szAppName[]=TEXT("HelloWin");

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.style=CS_HREDRAW|CS_VREDRAW;

wndclass.lpfnWndProc=WndProc;

wndclass.cbClsExtra=0;

wndclass.cbWndExtra=0;

wndclass.hInstance=hInstance;

wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);

wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.lpszMenuName=NULL;

wndclass.lpszClassName=szAppName;

if(!RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("This program requires WindowsNT!"),szAppName,MB_ICONERROR);

return 0;

}

hwnd=CreateWindow(szAppName,TEXT("The Hello Program"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

RECT rect;

switch(message)

{

case WM_CREATE:

{

ghWndCap=capCreateCaptureWindow((LPSTR)"Capture Window",WS_CHILD|WS_VISIBLE,0,0,300,240,(HWND)hwnd,(int)0);

capSetCallbackOnError(ghWndCap,(FARPROC)ErrorCallbackProc);

capSetCallbackOnStatus(ghWndCap,(FARPROC)StatusCallbackProc);

capSetCallbackOnFrame(ghWndCap,(FARPROC)FrameCallbackProc);

capDriverConnect(ghWndCap,0); // 将捕获窗同驱动器连接

//获得驱动器的能力,相关的信息放在结构变量gCapDriverCaps中

capDriverGetCaps(ghWndCap,&gCapDriverCaps,sizeof(CAPDRIVERCAPS));

capPreviewRate(ghWndCap, 66); // 设置Preview模式的显示速率

capPreview(ghWndCap, TRUE); //启动Preview模式

if(gCapDriverCaps.fHasOverlay) //检查驱动器是否有叠加能力

capOverlay(ghWndCap,TRUE); //启动Overlay模式

if(gCapDriverCaps.fHasDlgVideoSource)capDlgVideoSource(ghWndCap); //Video source 对话框

if(gCapDriverCaps.fHasDlgVideoFormat)capDlgVideoFormat(ghWndCap); // Video format 对话框

if(gCapDriverCaps.fHasDlgVideoDisplay)capDlgVideoDisplay(ghWndCap); // Video display 对话框

capFileSetCaptureFile( ghWndCap, szCaptureFile); //指定捕获文件名

capFileAlloc(ghWndCap, (1024L * 1024L * 5)); //为捕获文件分配存储空间

capCaptureSequence(ghWndCap); //开始捕获视频序列

capGrabFrame(ghWndCap); //捕获单帧图像

}

return 0;

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

GetClientRect(hwnd,&rect);

DrawText(hdc,TEXT("Hello,Windows98!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);

EndPaint(hwnd,&ps);

return 0;

case WM_DESTROY:

{

capSetCallbackOnStatus(ghWndCap,NULL);

capSetCallbackOnError(ghWndCap,NULL);

capSetCallbackOnFrame(ghWndCap,NULL);

capCaptureAbort(ghWndCap);//停止捕获

capDriverDisconnect(ghWndCap); //将捕获窗同驱动器断开

PostQuitMessage(0);

}

return 0;

}

return DefWindowProc(hwnd,message,wParam,lParam);

}

收起

6f93e2c92fc5e58e2ec18df1db0b9f08.png

阅读全文

9ded402a52cdd2b9481e864a5093252c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值