VC实现卡拉OK字幕叠加

一. 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字幕叠加的实现原理。

时间: 2024-09-19 09:17:40

VC实现卡拉OK字幕叠加的相关文章

C# 视频监控系列(10):服务器端——验证、设置画面质量、字幕叠加、板卡序列号

前言      本章将服务器端几个非主要但常用的功能分享一下.   注意      本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)   系列      1.     C# 视频监控系列(1):准备      2.     C# 视频监控系列(2):客户端--封装API      3.     C# 视频监控系列(3):客户端--连

卡拉OK字幕制作软件教程

一.什么是KBuilder KBuilder是一套用于生成卡拉OK字幕视频素材的工具.利用该工具生成卡拉OK字幕脚本后,通过视频编辑软件将其它与视音频素材一起加工处理,最终可以制作出令人激动的卡拉OK节目,保存在CDR盘片上,通过计算机或VCD,SVCD和DVD机器播放它们.KBuilder3.5套件包括以下部分: 1.KBuilder - 小灰熊歌词脚本生成器主程序,支持KBScripts 1.0; 2.KSC - 流行歌曲歌词脚本模板; 3.KBuilder Premiere插件; 4.He

基于局部编解码的字幕叠加技术

问题描述 基于局部编解码的字幕叠加技术 大家好,我想请问一下基于局部编解码的字幕叠加技术如何用软件来实现,我查到硬件方面是基于DM642平台来实现的,并用DSP系统.我想知道实现这一过程需要用的是什么软件,谢谢!

傻丫头字幕精灵使用教程

  傻丫头字幕精灵是一款专业的音乐字幕制作工具.使用它可以轻松地制作出专业的高质量的卡拉OK音乐字幕特效.编辑字幕时可以设置详细的字幕属性(布局.字体.显示.是境等)和模板特效(走字特效.指示灯设置等),制作好的字幕文件还可以直接应用于Adobe premiere.Ulead VideoStudio/MediaStudio等视频编辑软件. 傻丫头卡拉OK字幕精灵可以很容易地制作出非常专业的高质量的卡拉OK音乐字幕特效.您可以对字幕的字体.颜色.布局.走字特效和指示灯模板等等许多参数进行设置.它拥

制作《爸爸去哪儿》主题曲卡拉oK歌曲脚本

  如何制作KSC字幕 1.安装小灰熊字幕自作软件 下载小灰熊字幕自作软件,并按照提示进行安装. 2.启动Kbuilder Tools软件 启动Kbuilder Tools,然后出现主窗口: 主题曲卡拉oK歌曲脚本-爸爸去哪儿主题曲"> 下面,就以"爸爸去哪儿主题曲"为例,说明制作歌曲脚本的全过程. 3.准备全部素材 制作之前,先要准备下面的所有素材: 1) "爸爸去哪儿"歌曲的音频文件(林志颖&小小志kimi&张亮&张悦轩&

KSC字幕制作教程

  1.如何制作KSC字幕 1.安装小灰熊字幕自作软件 到下载页 下载小灰熊字幕自作软件,并按照提示进行安装. 2.启动Kbuilder Tools软件 启动Kbuilder Tools,然后出现主窗口: 下面,就以"爸爸去哪儿主题曲"为例,说明制作歌曲脚本的全过程. 3.准备全部素材 制作之前,先要准备下面的所有素材: 1) "爸爸去哪儿"歌曲的音频文件(林志颖&小小志kimi&张亮&张悦轩&郭涛&郭子睿&王岳伦&a

魔影工厂怎么添加字幕

  1.添加视频,为视频插入音乐 首先,在"视频"面板点击"添加视频"按钮,将视频导入爱剪辑. 接着,还可以切换到"音频"面板,点击"添加音频"按钮,为视频插入美妙动听的音乐. 2.一键导入LRC或KSC歌词文件,智能渲染MTV或卡拉OK字幕特效 然后,切换到"MTV"面板或"卡拉OK"面板,点击"导入LRC歌词"按钮或"导入KSC歌词"按钮,一键

C# 视频监控系列

C#视频监控系列(15):总结贴--可能用到的C# WinForm技术小结 C#视频监控系列(14):总结贴--VC++代码转成C#小结 C#视频监控系列(13):H264播放器--控制播放和截图 C#视频监控系列(12):H264播放器--播放录像文件 C#视频监控系列(11):H264播放器--封装API[HikPlayM4.dll] C#视频监控系列(10):服务器端 - 验证.设置画面质量.字幕叠加 C#视频监控系列(8):服务器端--预览和可被客户端连接 C#视频监控系列(7):服务器

C# 视频监控系列 序 [完]

前言      对于视频监控系统大家应该是不陌生的,实施的路况信息.地铁.银行柜台.大型商场.监狱等等场景都能看到它的影子.而当前关于视频监控的开发仍然是以VC++和Delphi为主,本系列文章将完整展示从采购到用C# WinForm技术实现所有功能和步骤.   注意      本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心.实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)