当前位置: 代码迷 >> 多媒体/流媒体开发 >> 请问directDraw Yuv overlay 缩放有关问题
  详细解决方案

请问directDraw Yuv overlay 缩放有关问题

热度:7775   发布时间:2013-02-26 00:00:00.0
请教directDraw Yuv overlay 缩放问题
我现在200万像素1628*1236分辨率的相机,相机传出来的图像为YUV4:2:2格式的图像,因为采用YUV转RGB,然后通过GDI在MFC界面上显示,速度无法忍受,而且cpu占用率高,所以请教大家关于直接调用显卡 overlay显示YUV图像,需要怎么实现呢?

因为我的图像是1628*1236的,但是我在MFC界面上画的picture控件的大小比这个小,必须缩放,Yuv overlay 怎么缩放?

需要自己缩放吗,比如我创建一个yuv overlay的表面,怎么讲图像数据填充到Yuv overlay表面,这个时候填充的是原始的1628*1236大小的数据,而是缩放过的跟MFC界面上picture控件一样的大小的数据呢?

然后怎么做,我想调用UpdateOverlay将overlay表面覆盖到主表面;但是我不知道怎么做?

所以在此请教大家,任何帮助都特别感激!

------解决方案--------------------------------------------------------
http://download.csdn.net/source/2801402

------解决方案--------------------------------------------------------
打包的格式
------解决方案--------------------------------------------------------
采用打包格式:Yuv 4:2:2 directdraw直接显示流程:
(1)创建directdraw对象;最好采用这个函数创建CoCreateInstance,因为采用DirectDrawCreate函数创建对象时,我没有成功;
(2)SetCooperativeLevel(m_hWnd,DDSCL_NORMAL);
(3)CreateSurface创建主表面;
(4)GetCaps获取显卡支持的overlay表面的格式,比如YV12,YUV2等;
(5)创建覆盖表面;
(6)将覆盖表面的内容通过UpdateOverlay函数在主表面上显示;
  相关解决方案