为了方便,就直接在视频上显示了,而没有动态的输出文字和用鼠标移动画线,不过是一样的原理,只是动态就要捕获鼠标状态的消息

LONG cx, cy;HRESULT hr;hr = pWC->GetNativeVideoSize(&cx, &cy, NULL, NULL);if (FAILED(hr)){Msg(TEXT("GetNativeVideoSize FAILED!  hr=0x%x\r\n"), hr);return hr;}HDC hdc = GetDC(hwndApp);HDC hdcBmp = CreateCompatibleDC(hdc);g_hFont=CreateFont(30, 10,0,0, 10, FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,_T("宋体"));HFONT hOldFont = (HFONT) SelectObject(hdcBmp, g_hFont);HPEN hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));HPEN hOldPen = (HPEN) SelectObject(hdcBmp, hPen);int nLength, nTextBmpWidth, nTextBmpHeight;SIZE sz={0};nLength = (int) _tcslen(szNewText);GetTextExtentPoint32(hdcBmp, szNewText, nLength, &sz);nTextBmpHeight = sz.cy;nTextBmpWidth  = 400/*sz.cx*/;HBITMAP hbm = CreateCompatibleBitmap(hdc, nTextBmpWidth, nTextBmpHeight);ReleaseDC(hwndApp, hdc);BITMAP bm;HBITMAP hbmOld;GetObject(hbm, sizeof(bm), &bm);hbmOld = (HBITMAP)SelectObject(hdcBmp, hbm);RECT rcText;SetRect(&rcText, 0, 0, nTextBmpWidth, nTextBmpHeight);SetBkMode(hdcBmp,TRANSPARENT);            //设置透明背景SetTextColor(hdcBmp, g_rgbColors);      // 文字颜色HBRUSH hBrush=((HBRUSH)GetStockObject(NULL_BRUSH));SelectObject(hdcBmp, hBrush);// 在位图上画图//输出文字//TextOut(hdcBmp, 0, 0, szNewText, nLength);DrawText(hdcBmp,szNewText,sizeof(szNewText),&rcText,DT_RIGHT);//画线MoveToEx(hdcBmp,10,10,NULL);LineTo(hdcBmp,200,10);//Ellipse(hdcBmp,0,0,100,nTextBmpHeight);// Configure the VMR's bitmap structureVMRALPHABITMAP bmpInfo;ZeroMemory(&bmpInfo, sizeof(bmpInfo) );bmpInfo.dwFlags = VMRBITMAP_HDC;bmpInfo.hdc = hdcBmp;  g_nImageWidth = bm.bmWidth;g_fBitmapCompWidth = (float)g_nImageWidth / (float)cx;bmpInfo.rDest.left  = 0.0f + X_EDGE_BUFFER;bmpInfo.rDest.right = 1.0f - X_EDGE_BUFFER;bmpInfo.rDest.top = (float)(cy - bm.bmHeight) / (float)cy - Y_EDGE_BUFFER;bmpInfo.rDest.bottom = 1.0f - Y_EDGE_BUFFER;bmpInfo.rSrc = rcText;bmpInfo.fAlpha = TRANSPARENCY_VALUE;SetColorRef(bmpInfo);hr = pBMP->SetAlphaBitmap(&bmpInfo);if (FAILED(hr))Msg(TEXT("SetAlphaBitmap FAILED!  hr=0x%x\r\n\r\n%s\0"), hr,STR_VMR_DISPLAY_WARNING);// Select the initial objects back into our device contextDeleteObject(SelectObject(hdcBmp, hbmOld));DeleteObject(SelectObject(hdcBmp, hOldPen));SelectObject(hdc, hOldFont);DeleteObject(hbm);DeleteDC(hdcBmp);return hr;

DirectShow 视频上画线和输出文字相关推荐

  1. cv2 在图片上画线

    import cv2 # capture=cv2.VideoCapture(0) img=cv2.imread('../../img/street.jpg',1) cv2.line(img,(0,0) ...

  2. html文字前画线代码,在div上画线

    拖动 要在div上拖放图标,我可以在div上放置图标并轻松拖动它们.但我不知道如何实现"Scribble"功能(例如,使用类似鼠标的笔在div上画线,就像在画布上一样). 下面是我 ...

  3. Unity在Canvas上画线(Draw Line)实现

    # 前言 目前Unity官方提供的UI扩展包中包含了UILineRenderer组件,本篇实现与UILineRenderer实现一致,主要讲解其基本使用与实现过程.不想看的同学可以直接下载官方扩展包. ...

  4. ArcGIS API for JavaScript根据两个点坐标在地图上画线

    ArcGIS API for JavaScript根据两个点坐标在地图上画线 比如说a(xxxx,xxxxx),b(xxxx,xxxxx).利用这两个点画一条线 var polyline = new ...

  5. QT 实现Label上画线

    实现功能:Label上有一张图片,用画笔在图像上画线. 一.头文件添加以下函数和变量 QMouseEvent * mouseEvent;void mousePressEvent(QMouseEvent ...

  6. OpenCV在图像上画线、矩形、椭圆、多边形、填充的多边形、圆、显示文字

    OpenCV在图像上随机画直线.椭圆.多边形.圆.显示文字 代码如下: /*** @file Drawing_2.cpp* @brief Simple sample code*/#include &l ...

  7. 如何使用Graphics2D在一张图片上画线(包括箭头)

    有这样一个需求,在一张图片上画几条线并保存,如图所示: 已知各个点的x,y坐标,坐标范围是[0.000,1],即将横纵方向分成1000份. 我们可以使用java.awt.Graphics2D的库来实现 ...

  8. OpenLayers 在地图上画线,获取点坐标(以天地图为例)

    应用场景: 最近在开发过程中,有个需求,需要在天地图中画线,结束后获取对应的坐标集合,查阅 OpenLayers API 和网上的相关资料后得以实现,特此记录. 因为直线间的点是无数个,我们不可能去获 ...

  9. 哈尔滨一同学用笔在纸上画线,一只瓢虫跟着爬爬爬。

    难以置信!哈尔滨一位同学下课后,一只瓢虫突然飞到了他的书本上,他用毛笔在纸上画了一条线,他所画的地方,瓢虫也跟着他. 很有可能,这只瓢虫被墨水的气味所吸引,因为它的气味很快就会变得浓烈起来,而瓢虫则对 ...

最新文章

  1. Ant Design Vue 表格内编辑(附完整源码及效果图)
  2. windows下部署MySQL 8.0.11
  3. 想不明白的时候可以干的十件事情
  4. 2.安装号mysql后当重启Linux服务器之后发现进入不了的解决方案
  5. 滴滴2017在线笔试有感
  6. [react] React根据不同的环境打包不同的域名?
  7. 怎样实现linux的网络通信协议是,一种基于Linux系统的TCP/IP协议栈的实现
  8. linux bochs 网卡,Bochs 在Windows和Linux下配置对比
  9. 有向无环图描述表达式
  10. 哈斯(Hasse)图
  11. linux中^]是如何输出的
  12. c语言int doubt,c语言错误error: incompatible types in assignment
  13. 腾冲樱花谷原生态旅游景区公园网站制作完成
  14. 机器学习【吴恩达|周志华|李宏毅|算法】清单
  15. Stream流的常用方法以及代码练习
  16. 通过md5值删除重复文件
  17. php中的nl2br函数,PHP nl2br()函数与示例
  18. Xilinx 7系列FPGA之Kintex-7产品简介
  19. 西瓜书笔记5:神经网络
  20. 淘宝官方的天天特卖活动应该如何进行进行设置?

热门文章

  1. Promise的理解与使用(收藏版)
  2. JAVA程序设计:祖玛游戏(LeetCode:488)
  3. 哪些原因会导致网站过度优化,网站降权被K的解决方案
  4. 深度广度优先算法、A*算法
  5. D3 二维图表的绘制系列(八)曲线图
  6. linux如何更换yum源为阿里云源
  7. 【GDOI2013】大山王国的科举考试
  8. Spring Security是什么? - 密码认证(四)
  9. FFmpeg入门详解之14:FFmpeg简介
  10. FTP上传文件,报“系统错误”