use SetBitmap to show Video :: Wireless Remote Control Tech
来源: BlogBus 原始链接: http://nuaa3.blogbus.com:80/logs/2005/05/1203770.html 存档链接: https://web.archive.org/web/20061104195425id_/http://nuaa3.blogbus.com:80/logs/2005/05/1203770.html
Wireless Remote Control Tech Alan Chen's Master Paper Research Space ! <<<关于用UDP协议 每次发送很大的数据包的问题 | 首页 | 关于非摸态对话框的销毁问题>>> use SetBitmap to show Video 时间:2005-05-22 我在做一个视频通讯的程序 从远端的摄像头(有采集卡)采集的帧(位图) ,用CxImage压缩为JPEG 然后通过网络传输 到本地,然后本地通过Cximage将接收到的转换为Bitmap,然后想在本地的对话框上显示 ,我用的是CStatic的SetBitmap(..) 来显示的。请问这样合理吗?能显示的流畅吗? 由于是在局域网中 ,我在程序中用TCP传输的视频数据。但是不知道为什么传输了 大概一分钟的时间之后 对话框的CStatic就定在那儿 而远程有摄像头的那台机器的图像仍然在继续传输。 我不知道是怎么回事? 请大家帮我想想啊。 HBITMAP SetBitmap( HBITMAP hBitmap ); 这个函数会返回 原来的位图,你不断创建新的位图,然后设置进去, 时间长了, 内存都漏完了... 象你这样的方式也没什么不行,就是注意将返回的 位图 删除掉 DeleteObject(hOld);
m_PreviewStatic.Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_SUNKEN,CRect(0,0,0,0),this); m_PreviewStatic.SetPreviewImage(NULL); void CPreviewStatic::SetPreviewImage(LPCTSTR ImagePath) { HBITMAP hPIBmp; hPIBmp=(HBITMAP)LoadImage(AfxGetInstanceHandle(),ImagePath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); if(ImagePath==NULL||hPIBmp==NULL) { hPIBmp=LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_DEFPREVIEW)); } DeleteObject(SetBitmap(hPIBmp)); //SetBitmap(hPIBmp); CenterWindow(GetParent()); } 我以前做的一个东东...static的大小自动跟bitmap一样大小...
一个Picture控件(显示BMP),我如何动态的改变Picture要显示的图象 ((CStatic*)GetDlgItem(IDC_CLOSE))->SetBitmap( ::LoadBitmap(LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_CLOSE_DOWN)));
用LoadImage把文件装载得到其句柄,用CStatic::SetBitmap为picture设置图片,记得要把原来的位图删掉,也就是SetBitmap返回的句柄 nuaa3 发表于 2005-05-22 17:19:00 引用Trackback(0) | 编辑 评论 发表评论 最后更新