DirectX--给视频加马赛克、字符OSD 2014-11-12 09:08 591人阅读 评论(1) 收藏
在虚拟摄像头(CSourcefilter)的fillbuffer中添加代码,在打码区域50*50,像素分辨率1/10:
for (int i=0;i<50;i++)
{
for (int k=0;k<50;k++)
{
BYTE x,y;//10*10的打码区域的参考坐标
x = k/10*10;//在x、y方向的每个10*10的区域中,采用原来的区域定点的像素,作为本区域的像素。
y = i/10*10;
*(pData+ (i*320+k)*4+0) = *(pData+ (y*320+x)*4+0); // Red
*(pData+ (i*320+k)*4+1) = *(pData+ (y*320+x)*4+1); // Green
*(pData+ (i*320+k)*4+2) = *(pData+ (y*320+x)*4+2); // Blue
}
}在函数CopyScreenToBitmap中添加:
//设置字体
HFONT font;
CreateFont(10,10,0,0,10,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,OUT_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"宋体");
SelectObject(hScrDC, &font);
SetBkMode(hScrDC,TRANSPARENT);
SetTextColor(hScrDC,RGB(255,0,0));
TextOut(hScrDC,0,0,"字符叠加OSD!",sizeof("字符叠加OSD!")-1);版权声明:本文为博主原创文章,未经博主允许不得转载。
浙公网安备 33010602011771号