VC实现字幕叠加.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC实现字幕叠加

VC实现字幕叠加 一. GDI编程基础   字幕叠加,应当是属于图形、图像处 理的范畴。在Windows平台上,图形、图像处理的方法当然首选GDI(Graphics Device Interface,图形设备接口)。GDI是什么?GDI其实是一套API函数;它们功能丰富,使用起来简单、灵活。下面,我们首先来介绍一些GDI编 程的基础知识。   GDI函数有很多,我们大致可以把它们分成如下几类:   · 设备上下文(Device Context,简称DC)函数,如GetDC、CreateDC、DeleteDC等;   · 画线函数,如LineTo、Polyline、Arc等;   · 填充画图函数,如Ellipse、FillRect、Pie等;   · 画图属性函数,如SetBkColor、SetBkMode、SetTextColor等;   · 文本、字体函数,如TextOut、GetTextExtentPoint32、GetFontData等;   · 位图函数,如SetPixel、BitBlt、StretchBlt等;   · 坐标函数,如DPtoLP、LPtoDP、ScreenToClient、ClientToScreen等;   · 映射函数,如SetMapMode、SetWindowExtEx、SetViewportExtEx等;   · 元文件(MetaFile)函数,如PlayMetaFile、SetWinMetaFileBits等;   · 区域(Region)函数,如FillRgn、FrameRgn、InvertRgn等;   · 路径(Path)函数,如BeginPath、EndPath、StrokeAndFillPath等;   · 裁剪(Clipping)函数,如SelectClipRgn、SelectClipPath等。   上述这些函数可以完成绘制用户界面中的各个部分,包括我们在Windows平台上司空见惯的窗口、菜单、工具条、按钮等。除了完成显示操作功能外,GDI还提供了一些绘图对象,用以渲染显示。这些GDI对象包括:   设备上下文(DC)——具有如显示器或打印机等输出设备的绘图属性信息的数据结构;   画笔(Pen)——用于绘制线条;   画刷(Brush)——用于图案的填充;   字体(Font)——用于确定文本字符的样式;   位图(Bitmap)——用于存储图像;   调色板(Palette)——屏幕上画图时可以使用的一些颜色的集合。   DC在GDI中是一个非常重要的概念。在MSDN上查看各个GDI函数的使用说明,我们会发现大部分GDI函数都有一个HDC类型的参数;HDC就是DC句柄。Windows应用程序进行图形、图像处理的一般操作步骤如下:   1. 取得指定窗口的DC;   2. 确定使用的坐标系及映射方式;   3. 进行图形、图像或文字处理;   4. 释放所使用的DC。   为了进一步简化GDI函数的使用,或者说为了适应面向对象的程序设计风格,微软的MFC类库提供了几个DC的封装类。这些类的继承关系如下: 图1 关于DC的几个MFC类的继承关系   我们知道,绝大部分MFC类都是从CObject类派生的,CDC类也不例外。我们看到,CDC类是最基本的DC封装类;它几乎对应封装了所有的GDI函数。另外,CDC类的各个派生类各有专门的用途:   CClientDC——在窗口的客户区画图的DC;   CMetaFileDC——用于操作Windows元文件的DC;   CPaintDC——响应WM_PAINT消息时画图使用的DC,多见于MFC程序的OnDraw函数中;   CWindowDC——在整个窗口范围(包括框架、工具条等)中画图的DC。   MFC除了对DC进行类封装外,对其它GDI对象也进行了类封装。这些类的继承关系如下: 图2 GDI对象的MFC封装类的继承关系   CGdiObject——GDI对象的父类,定义了GDI对象封装类的一些公有函数接口;   CBitmap——位图相关操作的封装类,包括位图的装入或创建等;   CBrush——画刷对象的封装类;   CFont——字体属性及相关操作的封装类;   CPalette——调色板的封装类;   CPen——画笔对象的封装类;   CRgn——区域对象以及区域相关操作的封装类。   通过上述介绍,相信读者对GDI编程有了一定的了解。接下去,我们就来讨论卡拉OK字幕叠加的实现原理。 二. 实现原理   字幕叠加,最基本的一种是在静态图像上进行的,一般就是直接在图像上输出标准的字符串,以合成新的图像帧;而视频上的字幕叠加

文档评论(0)

tangzhaoxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档