亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? staticex.cpp

?? This paper provides video capture and category CcaptureVideo example, in Win2K DirectX9 SDK VC6 thro
?? CPP
字號:
// StaticEx.cpp : implementation file//#include "stdafx.h"#include "Console.h"#include "StaticEx.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CStaticExint CStaticEx::m_staticCounts = 0;           BOOL CStaticEx::m_bPalInited = FALSE;CPalette CStaticEx::m_palFor8Bit;CStaticEx::CStaticEx(){	//缺省構造函數(shù)保證CG300卡不被初始化	m_hCG300 = NULL;	m_hDDraw = NULL;}CStaticEx::CStaticEx(int iNum){	//判斷卡號是否越界	if ((iNum < 1) || (iNum > MAX_CARD_NUMBER))	{		m_hCG300 = NULL;		m_bOpen = FALSE;		m_iNum = 0;	}	else	{		m_hCG300 = BeginCG300(iNum);              //打開圖像卡 !linca		if ((m_hCG300 == 0) || (m_hCG300 == 1) || (m_hCG300 == 2) ||			(m_hCG300 == 3) || (m_hCG300 == 0xffffffff))		{			m_hCG300 = NULL;			m_bOpen = FALSE;			m_iNum = 0;		}		else		{			m_bOpen = TRUE;			m_iNum = iNum;		}	}		m_hDDraw = NULL;	m_iShowMode = CLIP;	m_iVideoStand = PAL;	m_iFormMode = FRAME;	m_iStoreFmt = FRAME;	//初始化回放顯示參數(shù)	m_iCurFrame = 0;	m_dwLineAddrOffset = 0;	m_iImageSize = 0;	m_iFrameNum = 0;	m_pbminfo = NULL;	//m_iOpd = -1;	m_staticCounts++;}CStaticEx::~CStaticEx(){	//關閉DDraw動態(tài)庫	CloseDDraw(m_hDDraw);	//關閉圖像卡			CG300Capture(m_hCG300, FALSE);		EndCG300(m_hCG300);	}BEGIN_MESSAGE_MAP(CStaticEx, CStatic)	//{{AFX_MSG_MAP(CStaticEx)		// NOTE - the ClassWizard will add and remove mapping macros here.	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CStaticEx message handlers/**********************************************************// 函數(shù)SetDispWindow// 輸入?yún)?shù) //			BOOL bEnable					是否在設置輸入和顯示窗口之前停止采集															// 說明//		當CG300處于采集到顯卡時,若重新設置輸入輸出窗口,		驅動程序會先停止采集再設置,bEnable = FALSE.//		當CG300處于采集到內存時,每次設置輸入輸出窗口,		需要停止采集再設置,bEnable = TRUE.										**********************************************************/BOOL CStaticEx::SetDispWindow(BOOL bEnable){			CSize size;	//根據(jù)視頻制式確定默認最大輸入窗口	switch(m_iVideoStand)	{	case PAL:		size.cx = 768;	size.cy = 576;		break;	case NTSC:		size.cx = 640;	size.cy = 480;		break;	default:		size.cx = 768;	size.cy = 576;		break;	}	//if (bEnable == FALSE)//	{//		CG300Capture(m_hCG300, FALSE);//	}		int iHeight, iWidth;	iWidth = m_rectVideo.Width();	if (m_iFormMode == FRAME)	{		iHeight = m_rectVideo.Height();	}	else	{		iHeight = m_rectVideo.Height() * 2;			//場方式特殊處理		if (iHeight > 576)				//高度最大不能超過576		{			iHeight = 576;		}	}	//防止寬高 <= 1 的異常情況	if (iHeight <= 1)	{		iHeight = 100;	}	if (iWidth <= 1 )	{		iWidth = 100;	}	if (m_iShowMode == 0)	{		//比例模式		CG300SetInpVideoWindow(m_hCG300, 0, 0, size.cx, size.cy);	}	else	{		//裁減模式	CG300SetInpVideoWindow(m_hCG300, 0, 0, iWidth, iHeight);	}	CG300SetDispWindow(m_hCG300, m_rectVideo.left-3, m_rectVideo.top-3, 		               iWidth, iHeight);			return TRUE;}//這個函數(shù)不知為何不能用,我用了另一個方法,重載了OnCreate(),解決了問題,真聰明阿int CStaticEx::OnCreate(LPCREATESTRUCT lpCreateStruct) {	if (CStatic::OnCreate(lpCreateStruct) == -1)		return -1;	// TODO: Add your specialized creation code here	//獲取桌面位深度	CDC* pDC = GetDC();	m_iScrnBitsPixel = pDC->GetDeviceCaps(PLANES) * pDC->GetDeviceCaps(BITSPIXEL); //這里獲得顯卡的顏色數(shù)	//由位深度轉換到采集數(shù)據(jù)格式	m_iDataFormat = GetSpaceFormat(m_iScrnBitsPixel);	//設置圖像卡輸出的圖像數(shù)據(jù)格式	CG300SetColorSpace(m_hCG300, m_iDataFormat);	//創(chuàng)建各播放器共用的調色板	if (m_bPalInited == FALSE)	{		LOGPALETTE *lpLogPal;		BYTE buffer[2048];		lpLogPal = (LOGPALETTE *)buffer;		lpLogPal->palNumEntries = pDC->GetDeviceCaps(SIZEPALETTE);		lpLogPal->palVersion = 0x300;		for (int k = 0; k < (int)(lpLogPal->palNumEntries); k++)		{			//創(chuàng)建灰度調色板			lpLogPal->palPalEntry[k].peRed = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peGreen = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peBlue = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peFlags = 0;		}		m_palFor8Bit.CreatePalette(lpLogPal);				m_bPalInited = TRUE;	}	ReleaseDC(pDC);	//從INI文件讀取相應鍵值,并初始化各控制參數(shù)	CString str;	str.Format("Source%d", m_iNum);	m_iSource     = GetPrivateProfileInt( "Video Parameter", str, 1, "dhvcard.ini" );	str.Format("Brightness%d", m_iNum);	m_iBrightness = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Contrast%d", m_iNum);	m_iContrast   = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Hue%d", m_iNum);	m_iHue        = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Saturation%d", m_iNum);	m_iSaturation = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("LoPLLFreq%d", m_iNum);	m_iPll        = GetPrivateProfileInt("Video Parameter", str, 245, "dhvcard.ini");	str.Format("CryOSC%d", m_iNum);    m_iCryc       = GetPrivateProfileInt( "Video Parameter", str, 1, "dhvcard.ini" );	//設置默認視頻源路和圖像屬性	CG300SetADParam(m_hCG300, AD_SOURCE, m_iSource);	CG300SetADParam(m_hCG300, AD_BRIGHTNESS, m_iBrightness);	CG300SetADParam(m_hCG300, AD_CONTRAST, m_iContrast);	CG300SetADParam(m_hCG300, AD_HUE, m_iHue);	CG300SetADParam(m_hCG300, AD_SATURATION, m_iSaturation);	//設置圖像卡默認晶振	CG300SelectCryOSC(m_hCG300, m_iCryc);		//調用動態(tài)庫獲取DirectDraw支持	m_hDDraw = OpenDDraw(m_hCG300, GetSafeHwnd());	return 0;}BYTE CStaticEx::GetSpaceFormat(int iBitsPixel) const{	BYTE bySpaceFormat;	switch(iBitsPixel)	{	case 8:		bySpaceFormat = Limited8Bit;		break;	case 16:		bySpaceFormat = RGB565;		break;	case 24:		bySpaceFormat = RGB888;		break;	case 32:		bySpaceFormat = RGB8888;		break;	}		return bySpaceFormat;}int CStaticEx::OnCreate()//這是我重載的OnCreate函數(shù){// TODO: Add your specialized creation code here	//獲取桌面位深度	CDC* pDC = GetDC();	m_iScrnBitsPixel = pDC->GetDeviceCaps(PLANES) * pDC->GetDeviceCaps(BITSPIXEL); //這里獲得顯卡的顏色數(shù)	//由位深度轉換到采集數(shù)據(jù)格式	m_iDataFormat = GetSpaceFormat(m_iScrnBitsPixel);	//設置圖像卡輸出的圖像數(shù)據(jù)格式	CG300SetColorSpace(m_hCG300, m_iDataFormat);	//創(chuàng)建各播放器共用的調色板	if (m_bPalInited == FALSE)	{		LOGPALETTE *lpLogPal;		BYTE buffer[2048];		lpLogPal = (LOGPALETTE *)buffer;		lpLogPal->palNumEntries = pDC->GetDeviceCaps(SIZEPALETTE);		lpLogPal->palVersion = 0x300;		for (int k = 0; k < (int)(lpLogPal->palNumEntries); k++)		{			//創(chuàng)建灰度調色板			lpLogPal->palPalEntry[k].peRed = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peGreen = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peBlue = (BYTE)k + 10;			lpLogPal->palPalEntry[k].peFlags = 0;		}		m_palFor8Bit.CreatePalette(lpLogPal);				m_bPalInited = TRUE;	}	ReleaseDC(pDC);	//從INI文件讀取相應鍵值,并初始化各控制參數(shù)	CString str;	str.Format("Source%d", m_iNum);	m_iSource     = GetPrivateProfileInt( "Video Parameter", str, 1, "dhvcard.ini" );	str.Format("Brightness%d", m_iNum);	m_iBrightness = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Contrast%d", m_iNum);	m_iContrast   = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Hue%d", m_iNum);	m_iHue        = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("Saturation%d", m_iNum);	m_iSaturation = GetPrivateProfileInt( "Video Parameter", str, 128, "dhvcard.ini" );	str.Format("LoPLLFreq%d", m_iNum);	m_iPll        = GetPrivateProfileInt("Video Parameter", str, 245, "dhvcard.ini");	str.Format("CryOSC%d", m_iNum);    m_iCryc       = GetPrivateProfileInt( "Video Parameter", str, 1, "dhvcard.ini" );	//設置默認視頻源路和圖像屬性	CG300SetADParam(m_hCG300, AD_SOURCE, m_iSource);	CG300SetADParam(m_hCG300, AD_BRIGHTNESS, m_iBrightness);	CG300SetADParam(m_hCG300, AD_CONTRAST, m_iContrast);	CG300SetADParam(m_hCG300, AD_HUE, m_iHue);	CG300SetADParam(m_hCG300, AD_SATURATION, m_iSaturation);	//設置圖像卡默認晶振	CG300SelectCryOSC(m_hCG300, m_iCryc);		//調用動態(tài)庫獲取DirectDraw支持	m_hDDraw = OpenDDraw(m_hCG300, GetSafeHwnd());	return 0;}BOOL CStaticEx::CaptureToVGA(BOOL bEnable){	CG300Capture(m_hCG300, bEnable);      		SetWatchWnd(m_hDDraw, bEnable);         //菜單窗口更新 linca											//這兩個函數(shù)被封裝,看不到源代碼	return TRUE;}/****************************************************//	函數(shù) SetPlayBackParam//	輸入?yún)?shù)://			//  說明://			設置回放參數(shù)*****************************************************/BOOL CStaticEx::SetPlayBackParam(DWORD dwLineAddrOffset, int iFrameNum, 				int iImageSize, CSize szSource){	BOOL bVal;	if (dwLineAddrOffset >=0 && iFrameNum >= 0 && 		iImageSize >= 0 && szSource.cx >= 0 && szSource.cy >= 0)	{		m_dwLineAddrOffset = dwLineAddrOffset;		m_iFrameNum = iFrameNum;		m_iImageSize = iImageSize;		m_szSource = szSource;		m_iCurFrame = 0;       //初始化當前幀為0				int iBMBit;		if (m_iDataFormat == Limited8Bit || m_iDataFormat == All8Bit)		{			iBMBit = 8;		}		else		{			iBMBit = 24;		}		bVal = SetBitmapInfo(m_szSource, iBMBit);	}	else	{		bVal = FALSE;	}	return bVal;}BOOL CStaticEx::Display(){    CRect rect;	rect = m_rectVideo;	ScreenToClient(rect);//	char *lpDest = new char[768 * 576 * 4];	char *lpDest = new char[m_iImageSize];	//讀取當前幀到緩沖區(qū)	DWORD dwMemSize, dwPhysMem, dwHandle, dwLineAddr;	StaticMemAlloc(&dwMemSize, &dwPhysMem, &dwHandle, &dwLineAddr);	dwMemSize *= 4 * 1024;	CG300ReadFromMem(m_hCG300, (char *)dwLineAddr + m_dwLineAddrOffset,						m_iImageSize , m_iCurFrame, lpDest);	/*HCG300 hcg300; 圖像卡句柄。       char *lpSourBuf; 所申請到的內存起始線性地址。       DWORD dwMemSize; 內存的大小。       WORD Number; 所要讀取的圖像的編號,從第0開始。       char *lpDestBuf; 存放圖像數(shù)據(jù)緩沖區(qū)指針,由用戶分配 */	HDC hdc = ::GetDC(m_hWnd);	SetStretchBltMode(hdc, COLORONCOLOR);	//選取并實現(xiàn)灰度調色板	if (m_iDataFormat == Limited8Bit || m_iDataFormat == All8Bit)	{		SelectPalette(hdc, (HPALETTE)CStaticEx::m_palFor8Bit.GetSafeHandle(), FALSE);		RealizePalette(hdc);	}		StretchDIBits(hdc,rect.left, rect.top,rect.Width(), rect.Height(),0, 0,				m_szSource.cx, m_szSource.cy, lpDest, m_pbminfo, 				DIB_RGB_COLORS, SRCCOPY);	//	CSize m_szSource;	數(shù)據(jù)源寬高		::ReleaseDC(m_hWnd, hdc);		delete []lpDest;		return TRUE;}/****************************************************//	函數(shù) SetBitmapInfo//	輸入?yún)?shù)://			//  說明://			根據(jù)size和IBMBit設置BITMAPINFO結構*****************************************************/BOOL CStaticEx::SetBitmapInfo(const CSize &size, int iBMBit){	if(iBMBit != 8)	{		iBMBit = 24;	}	m_pbminfo = (BITMAPINFO *)m_byBuffer;	m_pbminfo->bmiHeader.biBitCount = iBMBit;	if (iBMBit == 8)	{		m_pbminfo->bmiHeader.biClrImportant = 256;		m_pbminfo->bmiHeader.biClrUsed = 256;	}	else	{		m_pbminfo->bmiHeader.biClrImportant = 0;		m_pbminfo->bmiHeader.biClrUsed = 0;	}		m_pbminfo->bmiHeader.biCompression = BI_RGB;	m_pbminfo->bmiHeader.biHeight = size.cy;	m_pbminfo->bmiHeader.biPlanes = 1;	m_pbminfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);	m_pbminfo->bmiHeader.biSizeImage = 0;	m_pbminfo->bmiHeader.biWidth = size.cx;	m_pbminfo->bmiHeader.biXPelsPerMeter = 0;	m_pbminfo->bmiHeader.biYPelsPerMeter = 0;	if (iBMBit == 8)	{		for( int k = 0; k < 256; ++k)		{			//設置灰度調色板			m_pbminfo->bmiColors[k].rgbBlue = (BYTE)k;			m_pbminfo->bmiColors[k].rgbGreen = (BYTE)k;			m_pbminfo->bmiColors[k].rgbRed = (BYTE)k;			m_pbminfo->bmiColors[k].rgbReserved = 0;		}	}	return TRUE;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区欧美小说| 欧美一级二级在线观看| 欧美视频完全免费看| 欧美久久久久久久久| 久久综合色8888| 亚洲精品国久久99热| 日本视频中文字幕一区二区三区| 国产一区二区精品久久| 一本到三区不卡视频| 日韩欧美卡一卡二| 中文字幕五月欧美| 日韩二区在线观看| www.亚洲人| 在线成人av网站| 亚洲国产精品国自产拍av| 亚洲成av人片在线观看无码| 国内精品嫩模私拍在线| 色国产精品一区在线观看| 538在线一区二区精品国产| 亚洲国产精品成人综合| 婷婷成人综合网| 成人久久久精品乱码一区二区三区| 欧美日韩在线精品一区二区三区激情| 久久一区二区三区国产精品| 亚洲在线免费播放| 国产高清久久久| 在线不卡免费欧美| 亚洲天堂av一区| 国产真实精品久久二三区| 欧美日韩国产综合草草| 国产日产欧美一区| 久久精品72免费观看| 一本久久综合亚洲鲁鲁五月天 | 亚洲人成小说网站色在线| 奇米精品一区二区三区在线观看| 97久久精品人人做人人爽50路| 日韩欧美电影一区| 一区二区三区不卡视频| 成人在线视频首页| 欧美成人在线直播| 天堂影院一区二区| 欧美在线一二三| 欧美韩国一区二区| 国产一区二区网址| 日韩一级大片在线| 亚洲成在线观看| 91麻豆国产福利在线观看| 国产人久久人人人人爽| 国产一区欧美一区| 欧美一区二区福利在线| 亚洲成人av免费| 色天使色偷偷av一区二区| 国产精品嫩草影院com| 国产一区在线观看视频| 欧美电视剧在线看免费| 日本视频一区二区三区| 欧美精选午夜久久久乱码6080| 一区二区三区在线免费| 99综合电影在线视频| 欧美国产欧美亚州国产日韩mv天天看完整 | 全国精品久久少妇| 欧美三级电影网| 夜夜嗨av一区二区三区网页| 色8久久精品久久久久久蜜| 18涩涩午夜精品.www| 成人在线一区二区三区| 国产女人aaa级久久久级| 国产大陆亚洲精品国产| 久久精品在这里| 国产精品小仙女| 久久久精品2019中文字幕之3| 国内精品自线一区二区三区视频| www亚洲一区| 国产99精品国产| 国产欧美日韩视频在线观看| 国产不卡高清在线观看视频| 国产精品午夜在线观看| 东方aⅴ免费观看久久av| 国产欧美一区二区三区在线老狼| 床上的激情91.| 国产精品福利在线播放| 91在线精品秘密一区二区| 亚洲女子a中天字幕| 欧美亚洲国产一区二区三区| 亚洲成av人片一区二区| 91精品国产免费| 精品一区二区三区视频在线观看| 久久久青草青青国产亚洲免观| 国产一区二区久久| 中文字幕日韩精品一区| 欧美色大人视频| 日本视频免费一区| xf在线a精品一区二区视频网站| 国产99久久久国产精品免费看| 亚洲人午夜精品天堂一二香蕉| 在线看国产一区| 青青国产91久久久久久| 久久只精品国产| 99国产一区二区三精品乱码| 亚洲最大成人网4388xx| 欧美一级久久久| 国产精品一区专区| 亚洲精选视频在线| 777精品伊人久久久久大香线蕉| 国内精品写真在线观看 | 欧美亚男人的天堂| 免费亚洲电影在线| 国产精品欧美一区二区三区| 在线精品视频免费播放| 久久国产精品99久久久久久老狼| 国产欧美综合在线观看第十页| 在线免费不卡视频| 久久国产三级精品| 中文字幕一区二区在线观看| 欧美三区在线观看| 国产在线不卡视频| 亚洲午夜久久久久久久久电影院| 欧美成人精品1314www| av一本久道久久综合久久鬼色| 午夜激情久久久| 亚洲国产精品黑人久久久 | 紧缚捆绑精品一区二区| 中文字幕日韩精品一区| 欧美一级午夜免费电影| 成a人片亚洲日本久久| 美腿丝袜在线亚洲一区| 亚洲欧美日韩系列| 欧美大片一区二区三区| 91免费观看在线| 狠狠色丁香九九婷婷综合五月| 亚洲精品国产成人久久av盗摄| 日韩精品一区二| 欧美视频精品在线| 成人午夜免费电影| 日本aⅴ免费视频一区二区三区 | 欧美又粗又大又爽| 国产精品一二三区在线| 亚洲国产aⅴ天堂久久| 国产精品理论在线观看| 精品少妇一区二区三区日产乱码 | 亚洲乱码国产乱码精品精的特点 | 国产99久久久国产精品潘金| 天堂va蜜桃一区二区三区| 国产精品久久久久久久久免费桃花 | 亚洲欧洲韩国日本视频| 精品日本一线二线三线不卡| 91福利国产成人精品照片| 国产精品香蕉一区二区三区| 日韩电影免费一区| 一区二区国产盗摄色噜噜| 日本一区二区三区高清不卡| 精品人在线二区三区| 69成人精品免费视频| 欧美性xxxxx极品少妇| 91丝袜呻吟高潮美腿白嫩在线观看| 久99久精品视频免费观看| 亚洲不卡av一区二区三区| 最新高清无码专区| 国产精品污网站| 2022国产精品视频| 欧美一区二区三区小说| 欧美在线三级电影| 色综合欧美在线| 97久久超碰精品国产| 成人性视频免费网站| 国产麻豆视频一区二区| 久久福利资源站| 日本aⅴ亚洲精品中文乱码| 亚洲一区二区偷拍精品| 一区二区三区四区av| 亚洲视频免费在线| 一色屋精品亚洲香蕉网站| 亚洲欧洲成人精品av97| 成人免费一区二区三区在线观看 | jizzjizzjizz欧美| 成人免费黄色大片| 成人sese在线| av一区二区三区| 99久久国产综合精品麻豆| jlzzjlzz亚洲日本少妇| 成人av小说网| 99热国产精品| 在线免费av一区| 欧美美女一区二区在线观看| 精品视频一区三区九区| 欧美日韩国产免费一区二区 | 蜜桃一区二区三区在线观看| 欧美96一区二区免费视频| 蜜臀av国产精品久久久久| 韩国精品一区二区| 国产伦理精品不卡| 国产成人在线观看免费网站| 成人黄色一级视频| 91首页免费视频| 欧美日韩中文另类| 日韩一区二区三区四区五区六区| 日韩精品一区二区三区在线观看 | 国产一区二区三区在线看麻豆| 国产精品综合视频| 91影视在线播放|