📄 global.cpp
字号:
#include "stdafx.h"
#include "Global.h"
#include "VideoCapture.h"
#include "VideoCaptureView.h"
CString GSMC;
BOOL HT;
BOOL bFilt;
VIDEOEXITS g_ve;
BOOL bUsedVideo;
HANDLE g_hdib;
BOOL MemoryStatus[4];
HGLOBAL CopyDIB(HGLOBAL dib)
{
HGLOBAL hDIB=NULL;
try{
if(!dib)
return NULL;
LPBYTE pBuffer=(LPBYTE)GlobalLock(dib);
if(!pBuffer)
return NULL;
hDIB = GlobalAlloc(GMEM_FIXED,GlobalSize(dib));
if (hDIB)
{
LPBYTE p=(LPBYTE)GlobalLock(hDIB);
memcpy(p,pBuffer,GlobalSize(dib));
BOOL a=::GlobalUnlock(hDIB);
GlobalUnlock(dib);
return hDIB;
}
else
return NULL;
}catch (...) {
}
if (hDIB) {
GlobalFree(hDIB);
}
return NULL;
}
int WINAPI cb_FindCar(int iChanel)
{
return 0;
}
UINT VideoExitsThread(LPVOID lpData)
{
CVideoCaptureView *pView=CVideoCaptureView::GetView();
g_hdib = NULL;
if(!lpData)
{
return 1;
}
bUsedVideo=TRUE;
VIDEOEXITS* pVE=(VIDEOEXITS*)lpData;
int iRoad = pVE->iRoad;
g_hdib = GlobalAlloc(GMEM_FIXED,IMAGE_WIDTH*IMAGE_HEIGHT*3+40);
PBYTE p = (PBYTE)GlobalLock(g_hdib);
while(!pVE->bExit)
{
try{
BOOL bCapSuccess = FALSE;
int nChanle=pVE->iChanel[0];
int* pfly = VC_CaptureImage(p,nChanle,true,-1,"",1);
if(pfly){
bCapSuccess = TRUE;
}
else{
continue;
}
}catch (...) {
continue;
}
if(!pVE->bExit)
{
RECT vRect;
CDC* pDC=pView->GetDlgItem(IDC_DRAWVEDIO)->GetDC();
HDC hDC=pDC->GetSafeHdc();
ve_Draw(p,hDC,0,0,pView->rectVideo.Width(),pView->rectVideo.Height(),1);
pView->ReleaseDC(pDC);
}
try{
int iFindCarRate=ve_CheckCar(p,100,1);
if(iFindCarRate>0){//图像存储,写数据,比对
int MemoryBlock=0;
for(MemoryBlock=0;MemoryBlock<4;MemoryBlock++)
{
if (MemoryStatus[MemoryBlock])
{
break;
}
}
if(MemoryBlock>=4)
continue;
THREADPARMS* ptp = new THREADPARMS;
ptp->DataPath = pView->DataPath;
ptp->hWnd = pView->m_hWnd;
for(int i=0;i<6;i++){
GlobalFree(pView->m_hDib[MemoryBlock][i][0]);
pView->m_hDib[MemoryBlock][i][0]=NULL;
GlobalFree(pView->m_hDib[MemoryBlock][i][1]);
pView->m_hDib[MemoryBlock][i][1]=NULL;
ptp->hDib[i][0]=NULL;
ptp->text[0] = "";
ptp->station[0] = "";
ptp->text[1] ="";
ptp->station[1] = "";
}
//0 特写,1 全景
pView->m_hDib[MemoryBlock][0][0] = (HDIB)CopyDIB(g_hdib);
ptp->hDib[0][0] = pView->m_hDib[MemoryBlock][0][0];
COleDateTime tm=COleDateTime::GetCurrentTime();
ptp->text[0] = tm.Format();
ptp->station[0] = pView->m_stationName;
ptp->m_JPG = pView->m_JPG;
ptp->BlockNum = MemoryBlock;
ptp->m_JpgQuality = pView->m_JpgQuality;
//添加大小车限速设置
ptp->ThisSpeed=0;
ptp->SpeedUp=0;
ptp->bSPJC=TRUE;
MemoryStatus[MemoryBlock]=FALSE;
AfxBeginThread(ThreadSave, ptp);
}
}catch(...){
continue;
}
}
GlobalUnlock(g_hdib);
GlobalFree(g_hdib);
g_hdib = NULL;
bUsedVideo=FALSE;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -