一种用于Windows系统的图像叠加文本的方法与流程

文档序号:11584562阅读:426来源:国知局
一种用于Windows系统的图像叠加文本的方法与流程

本发明涉及一种图像上叠加文本的方法,特别是一种用于windows系统的图像叠加文本的方法。

技术背景

图像和文本是多媒体信息系统中经常被融合的两类数据。主要融合形式是将文本叠加在图像或视频上显示,例如电影的字幕、多媒体视频会议系统的会议语音转换成文本的同步显示。除了某些播放器,例如windows上自带的视频播放器有视频图像窗口下方的字幕窗口,专门用于显示文本。多数应用的文本叠加一般指文本信息直接在图像区域上显示,例如爱奇艺等视频网站的弹幕等功能。

有关文本和图像融合的反问题——视频或自然图像中的文本提取被研究得比较多。例如专利cn100515048c、cn100593792c提供图像、视频中检测文本的方法。关于文本叠加在图像上的技术的相关专利则更多,兹介绍如下。

申请号为2012100494981发明名称为“一种在yuv图像上叠加文字的方法”的中国专利,通过字符矢量体图像叠加在y分量上,需要计算文字的轮廓。申请号为200820048755的中国专利是关于gps系统如何把车速、时间、地点等行驶记录文本信息叠加在视频上的,但未披露其中与文本叠加直接相关的系统子模块的工作原理细节。公开号为101309390b的中国专利介绍了一种视频会议系统,能将与会者发言语音实时转换成文字并同步到与会者的屏幕视频上。它重点阐述了字符的生成、传输和控制,以及将文本直接叠加在视频上编码生成视讯码流,没有进一步阐述如何叠加在视频图像上的工作机制。但在该专利中涉及介绍现有解决方案的不足,例如美国专利5774857使用将文本信号调制到视频基带信号输入到电视进行显示。公开号为101600038b的中国专利披露了一种图像叠加的原理,是基于其中一幅固定图像生成其对应的掩模来实现叠加的。公开号为102708204b的中国专利也是关于图像叠加的,由于处理的都是矢量图形,将需要叠加的图像预作透明化处理,叠加的方式使用正则化加权求和原理。美国专利ep0805600a2披露了一种在图像或视频压缩域进行文本叠加的方法,并且在该专利文档中回顾了历史上存在的几类文本叠加技术。第一类是模拟技术,分为带外、带内方式,叠加的实现也分为终端相关或终端无关。第二类在数字视讯系统中由mcu(即视讯系统中的多点控制单元)控制文本的传输并在终端显示。还有一类方式将音视频流模拟化,例如转成ntsc(ntsc是一种模拟电视制式)格式,在模拟域进行文本叠加,然后再进行数字化后传输,这一类方式也是终端无关的。

小结各个技术大体上要么使用模拟信号混合实现文本叠加;要么使用数据修改方式(例如申请号为2012100494981的中国专利、公开号为102708204b的中国专利),该技术又分为2类,前者使用掩模方式,后者使用透明化图像的加权叠加方式。其他的在压缩域的文本叠加方式,则是一种系统化解决方案,因为在视频压缩码流里含有文本信息的支持集成机制的。

本案实现的方式和公开号为101005609a的中国专利有点相似,但又有显著的不同。公开号为101005609a的中国专利使用flash透明窗口覆盖底层窗口的形式实现了图像叠加,该专利说明了其显示模块的2个特征:1)置于动画窗口上大小与其一致;2)动态挂件窗口的透明部分显示动画视频。在该说明书中也描述了显示模块根据每个像素标注的“显示/不显示”属性来实现透明化机制的。

可见总体来说,图像上叠加文字的方法分为模拟方法和数字方法。模拟方法在使用上系统过于复杂、以及和数字系统的兼容性差。数字方法中在图像压缩域进行码流上叠加的方法适用性比较有限;而使用图像正则化加权求和对文字叠加明显不适用;其余的数字化方法几乎本质上都使用掩模,这个方法需要预存、或实时计算掩模二值图,计算成本较高。本案提供了一种实现原理简单、计算成本低、应用方式灵活的图像叠加文字的方法。



技术实现要素:

为解决现有技术的不足,提供一种用于windows系统的图像叠加文本的方法,这种方法基于成熟的windows操作系统,应用范围广,设计合理。

为实现上述目的,本发明采用以下技术方案:

一种用于windows系统的图像叠加文本的方法,包括以下步骤:

步骤一:将需要叠加文字的图像自适应地打开显示:先创建显示图像的窗口a,然后打开图像文件,将图像数据自适应地渲染在窗口a上;

步骤二:创建窗口b,其大小与窗口a一致,并使用setlayeredwindowattributes函数将窗口b设置成全透明形式,将窗口b显示的位置与窗口a等同,以实现覆盖窗口a;

步骤三:将需要编辑的文字写成字符串,并确定需要编辑的位置;在窗口b的指定位置显示该字符串;

步骤四:将窗口b客户区内的内容使用录屏方式拷贝,并将拷贝内容转成图像保存。

上述步骤四中拷贝窗口b客户区的内容的方式为:

1)自动触发标准键盘的按键事件;

2)获取粘贴板拷贝的全屏图像数据;

3)根据窗口b的屏幕位置以及它的客户区范围大小计算出它的客户区在屏幕的位置以及范围大小,从全屏图像数据中截取客户区的图像数据;

4)将这部分数据单独保存为图像文件。

如前面专利综述所述最常见的文字叠加于图像的实现方式是修正图像的数据,而修正方式是基于字符的掩模图像的,而掩模图像要么是预先设计存储的,要么根据字符矢量特征进行实时生成。所谓掩模是指与原始图像宽高一致的由0/1表示的二元图,表征了每一个像素“被掩盖或不被掩盖”的特性,故名掩模。由此可见,公开号为101005609a的中国专利,所述的flash透明窗口覆盖机制本质上也是一种掩模,因为它也是逐像素地判断是显示还是覆盖。

在windows系统中开发类sdk包的win32api有设置分层窗口透明属性的接口函数setlayeredwindowattributes,该函数可以针对特定背景颜色、或不针对特定背景颜色进行程度不同的透明设置,利用该接口可以实现一种异于现有方式的图像文本叠加机制。

本方法使用图像显示的方式叠加文本,是一种纯数字化的实现方式。与现有的方法不同之处在于它不需要修改图像的数据,也不需要将文本视作矢量图进行图像叠加,也不是直接在图像(压缩)码流上叠加。它使用的思想与专利cn101005609a有一定程度的相似性,但它本质上不是使用掩模的,也没有与flash软件系统有太多的关联。相对来说,它基于商业上最为成熟、最为普遍的windows系统的比较低层的接口实现(相对而言,flash等系统接口更属于上层应用层。凡是底层的接口使用灵活性更高。)。因而该方法对于其他系统上的实现也有参考和借鉴意义。因为,历来作为最商业化的windows系统的许多概念一直为其他系统,如linux、安卓操作系统等所仿效。

附图说明

图1为本发明文本叠加的工作流程框图。

图2为本发明实施例窗口a的示意图。

图3为本发明实施例等待叠加的图像示意图。

图4为本发明实施例窗口b和需要叠加的文字示意图。

图5为本发明实施例窗口b叠加到窗口a上之后的示意图。

具体实施方式

实施例:

参照附图,一种用于windows系统的图像叠加文本的方法,包括以下步骤:步骤一:将需要叠加文字的图像自适应地打开显示:先创建显示图像的窗口a,然后打开图像文件,将图像数据自适应地渲染在窗口a上;

步骤二:创建窗口b,其大小与窗口a一致,并使用setlayeredwindowattributes函数将窗口b设置成全透明形式,将窗口b显示的位置与窗口a等同,以实现覆盖窗口a;

步骤三:本例中将需要编辑的文字“文字叠加”写成字符串,并确定需要编辑的位置;在窗口b的指定位置渲染显示该字符串“文字叠加”;

步骤四:将窗口b客户区内的内容使用录屏方式拷贝,并将拷贝内容转成图像保存:

1)自动触发标准键盘的按键事件,设置该按键为标准键盘上的“prtsc”键;

2)获取粘贴板拷贝的全屏图像数据;

3)根据窗口b的屏幕位置以及它的客户区范围大小计算出它的客户区在屏幕的位置以及范围大小,从全屏图像数据中截取客户区的图像数据;

4)将这部分数据单独保存为图像文件。

所谓自适应是指图像宽高比依照显示图像的窗口宽高比进行伸缩,以便让图像能够满窗显示,填满窗口,既没有空处,也没有裁截。步骤四中,窗口a内打开输入图像时进行了自适应地缩放,在输出图像文件保存之前预先对客户区拷贝图像进行相反地缩放,以便将输出的结果图像的分辨率与输入图像保持一致。

在窗口b的指定位置渲染字符串,可用的软件接口有很多,例如gdi的textout可以在任意窗口的指定位置进行字符串文本渲染。

本发明所称的窗口客户区是指不包括窗口标题栏以及菜单栏、工具栏、状态栏、滚动条的窗口核心区域,专门用于显示与该窗口有关的业务数据;

将窗口b的客户区内容使用录屏方式拷贝,并将拷贝内容转成图像保存,保存的图像格式可以采用与原有图像一致的格式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1