DirectX--给视频加马赛克、字符OSD-阿里云开发者社区

开发者社区> 云计算> 正文

DirectX--给视频加马赛克、字符OSD

简介: <p>在虚拟摄像头(CSourcefilter)的<strong>fillbuffer</strong>中添加代码,在打码区域50*50,像素分辨率1/10:</p> <p><br></p> <p><img src="http://img.blog.csdn.net/20141112100409331?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb

在虚拟摄像头(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);


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章