您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
VC实现卡拉OK字幕叠加
[文章信息]
作者:陆其明
时间:2003-11-21
出处:VCHelp
责任编辑:方舟
[文章导读]
本文介绍了卡拉OK字幕叠加的一般原理以及VC上使用GDI的一种简单实现
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.28软件精选 找乐还是赌钱
· 中国游戏业——被人们忽视的黑暗
· Windows 2000密码破解不完全指南
· 解决XP SP2带来的网络故障(上)
[正文]

1 2 3 4  下一页

天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。(首月免费)


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


1 2 3 4  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 深入VC++消息映射与命令通知
  • VC实现应用程序在线升级
  • VC++6.0物资分配软件实例分析
  • 用VC++构建树视图控件
  • VC编程实现文本语音转换
  • VC中利用OpenGL实现三维绘图
  • Visual C++图像处理编程讲座
  • VC数字图像处理编程讲座之五
  • VC6.0编写C/S消息传送程序
  • 百万像素手机大展台
  • K7终极配置 时尚游戏的追求
  • 天极游戏专访锦天科技总经理贾可
  • 10.28软件精选 找乐还是赌钱
  • 浩鑫:争夺电子竞技“F1”桂冠
  • 体验诺顿安全特警2005版的最新特色
  • NGC《生化危机4》神秘男子出现
  • VIA作客天极 最新Roadmap曝光
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索