zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2359回复:18

如何在视频上叠加字符呢?

楼主#
更多 发布于:2004-05-17 14:37
直接写由于视频图像的不断刷新会使字符产生闪烁感,怎样才能消除闪烁呢?

 :(
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
babyblue
驱动中牛
驱动中牛
  • 注册日期2003-05-06
  • 最后登录2005-12-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-18 09:12
你用什么方法叠加的字符?硬件还是软件
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-18 09:52
软件 ;)
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
babyblue
驱动中牛
驱动中牛
  • 注册日期2003-05-06
  • 最后登录2005-12-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-18 13:39
那就不懂了 :D
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-05-18 17:59
在WINDOWS下用DDRAW(OFFSCREEN或者OVERLAY)来显示的视频的吗?如果是的话,比较好办。
堂堂正正做人,明明白白做事
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-05-18 20:34
在WINDOWS下用DDRAW(OFFSCREEN或者OVERLAY)来显示的视频的吗?如果是的话,比较好办。


我现在用的是offscreen,然后blt到主表面,这有什么办法可以解决字符闪烁问题?

overlay呢?
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-05-19 12:51
OVERLAY方式把叠加字符的颜色变成与指定的透明色不一样就可以。
堂堂正正做人,明明白白做事
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-05-19 13:00
OFFSCREEN模式:当一帧数据准备好后,先把字符BLT到后备屏面。再把后备屏面BLT到当前屏面。
堂堂正正做人,明明白白做事
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-05-19 13:21
那么怎样blt字符到后备表面呢 :P

我试了在后备表面获取设备dc句柄,但是不能成功。还有什么别的方法呢。 :(

[编辑 -  5/19/04 by  zydcat]
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-05-19 13:36
Sunbeam老大,有没有msn或qq阿 :D

[编辑 -  5/19/04 by  zydcat]
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-05-19 17:49
呵呵,对要显示的字符也是建立一个平面
堂堂正正做人,明明白白做事
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-05-20 11:06
呵呵,对要显示的字符也是建立一个平面


是不是DDSCAPS_TEXTURE,有没有相应的例子呢? :(
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
mike_wang
驱动中牛
驱动中牛
  • 注册日期2003-01-22
  • 最后登录2012-01-04
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-05-20 11:35
sunbeam的方法是正确的!
也就是两个图像内存,轮流现实
每次编辑不显示的那个。就不会有闪烁
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-05-20 13:12
sunbeam的方法是正确的!
也就是两个图像内存,轮流现实
每次编辑不显示的那个。就不会有闪烁


问题是如何把字符加到不显示的那个表面上去 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
mike_wang
驱动中牛
驱动中牛
  • 注册日期2003-01-22
  • 最后登录2012-01-04
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-05-20 16:35
这个问题你到游戏开发方面的论坛去
这个跟游戏中的精灵实现方法是一样的!电脑游戏的基础
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-05-20 17:05
看了看dx的例子,里面有个font的例子,可以在表面上加上字符,原理是将字符变为二色位图,然后按像素修改视频画面,感觉效率不是很高,因为是逐点修改。

不知道是不是Sunbeam说的方法,如果不是,倒底应该如何建立字符平面?
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-05-20 17:10
这个问题你到游戏开发方面的论坛去
这个跟游戏中的精灵实现方法是一样的!电脑游戏的基础


游戏是全屏的,可以使用Flip,并且主表面可以Getdc,所以写字符问题不大。
而我只能使用Offscreen,Offscreen不能Getdc,比较痛苦。

游戏中精灵的实现是使用关键色透明精灵的背景吧好像,精灵也是位图。

[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
mike_wang
驱动中牛
驱动中牛
  • 注册日期2003-01-22
  • 最后登录2012-01-04
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-05-20 17:28
不错,精灵是使用的位图,设置colorkey就可以了!
directshow里有一个filter用来实现写字的也是用的这种方法呀!

zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-05-24 12:26
sunbeam怎么不来了?
算了,给分先吧 :(
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
游客

返回顶部