#include <vfw.h>
비디오 영상처리를 위한 것
vfw32추가
#include <windows.h>
#include <vfw.h>
//#pragma comment(lib,"vfw32.lib")
typedef struct
{
UINT uiMSG;
LRESULT(*fp) (HWND, WPARAM, LPARAM);
}stMSG_Map;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT On_Paint(HWND hWnd, WPARAM wParam, LPARAM lParam);
LRESULT On_Create(HWND hWnd, WPARAM wParam, LPARAM lParam);
LRESULT On_Destroy(HWND hWnd, WPARAM wParam, LPARAM lParam);
HINSTANCE g_hInst;
LPSTR lpszClass = L"영상처리";
stMSG_Map stMap[] = {
{ WM_PAINT, On_Paint },
{ WM_CREATE, On_Create },
{ WM_DESTROY, On_Destroy },
{ WM_NULL, 0 }
};
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
, LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst = hInstance;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = (WNDPROC)WndProc;
WndClass.lpszClassName = lpszClass;
WndClass.lpszMenuName = NULL;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU)NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
while (GetMessage(&Message, 0, 0, 0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
stMSG_Map * stpMap = stMap;
while (WM_NULL != ((*stpMap).uiMSG))
{
if (iMessage == ((*stpMap).uiMSG))
{
return (((*stpMap).fp)(hWnd, wParam, lParam));
}
++stpMap;
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
LRESULT On_Paint(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
return 0;
}
LRESULT On_Create(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
HWND hCamera;
BITMAPINFO stBMPinfo;
hCamera = capCreateCaptureWindow(TEXT("CAM"),
WS_CHILD | WS_VISIBLE,
0, 0,
320, 240,
hWnd, 0);
capDriverConnect(hCamera, 0);
capPreviewRate(hCamera, 1); // 화면에 보이는 속도
capGetVideoFormat(hCamera, &stBMPinfo, 320 * 240);
stBMPinfo.bmiHeader.biWidth = 320;
stBMPinfo.bmiHeader.biHeight = 240;
capSetVideoFormat(hCamera, &stBMPinfo, 320 * 240);
capPreview(hCamera, TRUE);
return 0;
}
LRESULT On_Destroy(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
return 0;
}
StretchDIBits function
'코스웨어' 카테고리의 다른 글
2016_03_23_인터럽트1_노태경_업무일지_ (0) | 2016.03.23 |
---|---|
16.03.16 조승현 업무일지 about_LCD 디스플레이 Lcd.H에 관해서 (0) | 2016.03.16 |
2016_03_16 LED실습_ 노태경_업무 일지 (0) | 2016.03.16 |
20151216 22번 우대희 업무일지 (1) | 2015.12.16 |
20151123- 강동조 개인업무일지 영상처리2일차(작성중) (0) | 2015.11.23 |
2015-11-19 Win32 API 개인업무일지 - 천정호 (2) | 2015.11.20 |
20151113 윤재희 #2 기본창의 다양한 변경, 문자열 출력 (4) | 2015.11.13 |
20151112 - 2번 강동조 API (1) | 2015.11.13 |