从AVI中读取每帧数据显示到界面
来源:互联网 发布:qq挂机升级软件 编辑:程序博客网 时间:2024/05/02 00:21
int OpenIrVideo::SendImageData(THPARAM *param, int sourceDes,CFile& fs) //发送镜像数据
{
g_imageBuffSize=_IR_320_BUFF_SIZE_;
AVIFileInit(); //初始化AVI文件
PAVIFILE avi;
int res=AVIFileOpen(&avi, m_AVIName, OF_READ, NULL); //打开avi文件,m_AVIName是avi路径名
if (res!=AVIERR_OK)
{
//an error occures
if (avi!=NULL)
AVIFileRelease(avi);
}
AVIFILEINFO avi_info;
AVIFileInfo(avi, &avi_info, sizeof(AVIFILEINFO));
PAVISTREAM pStream;
res=AVIFileGetStream(avi, &pStream, streamtypeVIDEO /*video stream*/,
0 /*first stream*/);
if (res!=AVIERR_OK)
{
if (pStream!=NULL)
AVIStreamRelease(pStream);
AVIFileExit();
}
int iNumFrames;
int iFirstFrame;
iFirstFrame=AVIStreamStart(pStream); //获取起始帧
if (iFirstFrame==-1)
{
//Error getteing the frame inside the stream
if (pStream!=NULL)
AVIStreamRelease(pStream);
AVIFileExit();
}
iNumFrames=AVIStreamLength(pStream); //获取帧长度
if (iNumFrames==-1)
{
//Error getteing the number of frames inside the stream
if (pStream!=NULL)
AVIStreamRelease(pStream);
AVIFileExit();
}
PGETFRAME pFrame;
pFrame=AVIStreamGetFrameOpen(pStream,
NULL/*(BITMAPINFOHEADER*) AVIGETFRAMEF_BESTDISPLAYFMT*/ /*&bih*/);
int index=0;
BYTE* pDIB;
for (int i=iFirstFrame; i<iNumFrames; i++)
{
index= i-iFirstFrame;
pDIB = (BYTE*)AVIStreamGetFrame(pFrame, index); //获取每帧的数据流
SynSendData(param,4,pDIB,g_imageBuffSize);
m_Bitmap = BufferToBitmap(pDIB); //将内存中的BMP文件内容转换到HBITMAP
HBITMAP OldBitmap;
CWnd* pWnd = CWnd::FromHandle(m_winPicHandle);;
CDC* pDC = pWnd->GetDC();
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
OldBitmap = (HBITMAP)MemDC.SelectObject(m_Bitmap);
CRect rect;
pWnd->GetClientRect(&rect);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(OldBitmap);
MemDC.DeleteDC();
pWnd->ReleaseDC(pDC);
Sleep(100);
if(i == iNumFrames-1)
{
i = 0;
}
}
return 1;
}
- 从AVI中读取每帧数据显示到界面
- 读取AVI文件,将每帧显示到界面
- MFC(5)读取AVI视频数据并且显示到界面窗口上源码
- 从数据文件中读取一段数据,显示到ImageView中
- 从数据库中读取数据显示到树
- real210:从摄像头读取一帧数据并压缩成jpeg图片
- 解决PyQt中从文件读取内容输出到界面乱码的问题
- struts保存图片到数据库 ,从数据库中读取图片显示到页面
- Camera处理每帧数据图片并转为灰度图
- xml中保存如何保存图片及从XML中读取出来显示到浏览器中
- 将图片保存到数据库表中及从数据库表中读取图片并显示
- Ajax的一个简单例子--从一个文件文件中读取数据显示到页面中
- 利用SwingWorker,从文件中读取内容,显示到JTextArea中
- AVI文件的读取并显示
- AVI文件的读取并显示
- 从文本文件中读内容(显示到控制台界面上)
- 从extenionplugin的C++ 模块中读取数据并显示到Qt的ListView上
- 单片机 stm32读取ico图标文件 从SD卡中解码显示到LCD
- 画葫芦娃
- 语音编码分类及编解码标准
- Struts2保存登陆信息和注销功能例子
- 中国移动App Store注册用户数量近1.5亿
- Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)
- 从AVI中读取每帧数据显示到界面
- 关于Div同列问题
- 社交游戏玩家大多是老虎机赌徒
- linux多线程---pthread_cancel
- ubuntu10.04使用awstats分析apache日志文件
- java.util.concurrent.locks Synchronized
- SIP学习笔记
- Ubuntu下 Eclipse SVN插件 subclipse安装
- 提交应用程序到Android Market教程