各位老大,帮帮忙,把简单的Vc代码转换成Delphi的。100分送给你............
void CHKVisionDlg::OnCapimage()
{
// TODO: Add your control notification handler code here
UCHAR imageBuf[704 * 576*2];
DWORD Size = 704 * 576*2;
UCHAR *imageBuffer=new UCHAR[Size];
char fileName[256];
CTime m_StartTime1=CTime::GetCurrentTime();
CString csStartTime=m_StartTime1.Format("%Y%m%d%H%M%S");
int ret;
int jpegQuality=100;
{
//capture BMP picture
TRACE("start original image cap\n");
sprintf(fileName, "ch%02d_%s.bmp", iLastSelect,csStartTime);
GetOriginalImage(ChannelHandle[iLastSelect], imageBuf, &Size);
if(Size == 704 *576 * 2)
SaveYUVToBmpFile(fileName, imageBuf, 704, 576);
else if(Size == 704 * 480* 2)
SaveYUVToBmpFile(fileName, imageBuf, 704, 480);
if(Size == 352 *288 * 2)
SaveYUVToBmpFile(fileName, imageBuf, 352, 288);
else if(Size == 352 * 240* 2)
SaveYUVToBmpFile(fileName, imageBuf, 352, 240);
if(Size == 176 *144 * 2)
SaveYUVToBmpFile(fileName, imageBuf, 176, 144);
else if(Size == 176 * 120* 2)
SaveYUVToBmpFile(fileName, imageBuf, 176, 120);
//capture jpg picture
if(!imageBuffer)
return;
Size = 704 * 576*2;
int ret=GetJpegImage(ChannelHandle[iLastSelect],imageBuffer,&Size,jpegQuality);
if(ret==0)
{
CString str;
str.Format("ch%02d_%s.jpg",iLastSelect,csStartTime);
FILE *pFile=fopen(str.GetBuffer(0),"wb");
if(pFile)
{
fwrite(imageBuffer,Size,1,pFile);
fclose(pFile);
}
else
AfxMessageBox("Can not open JPEG file!");
}
else if(ret==ERR_OUTOF_MEMORY)
AfxMessageBox("Not enough memory to store bitstream! \n or \n Image is too complex!");
else if(ret==ERR_WAIT_TIMEOUT)
AfxMessageBox("System is too busy!");
delete []imageBuffer;
Sleep(10);
}
}