在电子设备中实现字幕滚动的方法和装置的制作方法

文档序号:2556419阅读:158来源:国知局
专利名称:在电子设备中实现字幕滚动的方法和装置的制作方法
技术领域
本发明涉及电子设备领域,尤其涉及一种在电子设备中实现字幕滚动的方法和装置。
背景技术
当前,电子设备的应用日趋广泛;在很多场合,需要在电子设备的屏幕上实现字幕 的滚动。 目前,在电子设备中实现字幕滚动的一种方法是通过2D加速来实现矢量字滚动 效果。 另外一种方法是通过更新横坐标来改变字串显示的起始位置并进行连续重画,从
而实现滚动效果。这种方法中,系统可以采用点阵字库或矢量字库来实现。 发明人在实现本发明的过程中,发现现有的技术至少存在以下缺点 如果通过2D加速的方案实现,则需要平台底层驱动软件的集成开发,避免不了软
件的耦合,不利于软件的跨平台移植;并且嵌入式CPU必须要有2D加速的硬件支持,在没有
2D加速的平台则无法实现; 如果采用通过更新横坐标来改变字串显示的起始位置并进行连续重画的方案实 现,那么当系统采用点阵字库时,由于点阵字库中的字体大小已经固定无法改变,在需要多 种大小的字体进行显示的多媒体设备上,位图文件就会有很多限制,例如字库偏大,字体大 小固定等;而当系统采用矢量字库时,需要在每次重画前将上次显示过的字符进行擦除,因 此字幕滚动的过程就是整个屏幕"显示_擦除_显示_擦除"的过程,这样时在人眼观看时, 将会出现屏幕闪烁的问题。

发明内容
本发明要解决的技术问题是提供一种在电子设备中实现字幕滚动的方法和装置, 能够避免电子设备中实现矢量字滚动效果时的闪烁问题。 为了解决上述问题,本发明实施例提供了一种在电子设备中实现字幕滚动的方 法,所述电子设备包括一个显示屏,所述显示屏上显示有一字幕,所述字幕由至少一个字符 组成,所述方法包括 从所述至少一个字符中确定第一字符为待被覆盖字符; 确定与所述第一字符相对应的第二字符为覆盖字符,所述第二字符包括背景层和 前景层两个图层; 将所述第二字符的背景层设置为非全透明; 使用所述第二字符覆盖所述第一字符,使得所述第一字符的任一部分在所述显示 屏上没有被显示。 进一步的,从所述至少一个字符中确定第一字符是指确定所述至少一个字符为 第一字符;
确定与所述第一字符相对应的第二字符为覆盖字符是指在待显示的字幕中截取 与所述第一字符相对应的所述第二字符,其中,所述待显示的字幕是由至少一个所述第二 字符组成; 使用所述第二字符覆盖所述第一字符是指使用每个所述第二字符覆盖所述第二 字符相对应的所述第一字符进行显示。 进一步的,使用所述第二字符覆盖所述第一字符时,如果所述第二字符的尺寸比 所述第一字符小,或者是所述显示屏上除了所述第一字符以外还存在其它不需要继续显示 的字符,则清空所述显示屏上所述第二字符未覆盖到的显示区域。
进一步的,将所述第二字符的背景层设置为非透明是指 将所述第二字符的背景层的透明度设置为一个大于0、小于成等于透明阈值的数
值;其中,透明度为0时表示透明度为全透明。 进一步的,将所述第二字符的背景层的透明度设置为1。 本发明实施例还提供了一种在电子设备中实现字幕滚动的装置,所述电子设备包 括一个显示屏,所述显示屏用于显示一字幕,所述字幕由至少一个字符组成;其特征在于, 包括 第一字符确定模块,用于从所述至少一个字符中确定第一字符为待被覆盖字符;
第二字符确定模块,确定与所述第一字符相对应的第二字符为覆盖字符,所述第 二字符包括有背景层和前景层二个图层; 第二字符设置模块,用于将所述第二字符的背景层设置为非全透明; 覆盖模块,用于按照所设置的第二字符的背景层将第二字符显示在所述显示屏中
第一字符所在的位置,使得所述第一字符的任一部分在所述显示屏上没有被显示。 进一步的,所述第一字符确定模块从所述至少一个字符中确定第一字符是指所
述第一字符确定模块确定所述至少一个字符为第一字符; 所述第二字符确定模块确定与所述第一字符相对应的第二字符为覆盖字符是指 所述第二字符确定模块在待显示的字幕中截取与所述第一字符相对应的所述第二字符,其 中,所述待显示的字幕是由至少一个所述第二字符组成; 所述覆盖模块将第二字符显示在所述显示屏中第一字符所在的位置是指所述覆 盖模块将每个所述第二字符显示在所述显示屏上所述第二字符相对应的所述第一字符所 在的位置。 进一步的,所述覆盖模块按照所设置的第二字符的背景层将第二字符显示在所述 显示屏中第一字符所在的位置时,如果所述第二字符的尺寸比所述第一字符小,或者是所 述显示屏上除了所述第一字符以外还存在其它不需要继续显示的字符,则清空所述显示屏 上所述第二字符未覆盖到的显示区域。 进一步的,所述第二字符设置模块将所述第二字符的背景层设置为非全透明是 指 所述第二字狩设置模块将所述第二字狩的背景层的透明度设置为一个大于0、小 于或等于透明阈值的数值;其中,透明度为0时表示透明度为全透明。 进一步的,所述第二字符设置模块将所述第二字符的背景层的透明度设置为1。
本发明的一个实施例至少具有如下技术效果不必在每次字幕改变的时候进行擦除,从而避免了闪烁问题。本发明的又一实施例至少具有如下技术效果给出了设置透明度 的具体实现细节,操作性更强。本发明的另一实施例至少具有如下技术效果可以通过软件 方法实现,大大减少与硬件的耦合程度,利于跨平台应用。


图1是本发明的实施例一的实现字幕滚动的方法的流程示意图;
图2是本发明的实施例二的实现字幕滚动的装置的示意框图。
具体实施例方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。 实施例一,在电子设备中实现字幕滚动的方法,所述电子设备包括一个显示屏,所
述显示屏上显示有一字幕,所述字幕由至少一个字符组成,所述方法包括 从所述至少一个字符中确定第一字符为待被覆盖字符; 确定与所述第一字符相对应的第二字符为覆盖字符,所述第二字符包括有背景层 和前景层二个图层; 将所述第二字符的背景层设置为非全透明; 使用所述第二字符覆盖所述第一字符,使得所述第一字符的任一部分在所述显示 屏上没有被显示。 本实施例的一种具体实现步骤如图1所示,包括
101、设置覆盖字符的背景层为非全透明。 所述字符包括前景层和背景层两个图层;字符的背景层包括两方面参数颜色和 透明度。 在本文中,"字符"也可以称为"字", 一个英文字母和一个汉字都可以看成为一个 "字符"("字")。 本实施例中,透明度可以用数值表示,通常以0表示透明度为全透明,数值越大表 示透明度越低;因此步骤101中,可以将所述覆盖字符的背景层的透明度设置为大于0、小 于或等于透明阈值的数值。实际应用中,透明度也可以用移动滑块、点击选择等方式来设 置,而不限于用数值来设置。 本实施例中,所述透明阈值可以根据实验确定,比如将所述字符的背景层的透明 度设置为从1开始依次增大的数值,当设置为某一数值——比如11时,发现字符的背景层 会对字符的显示造成影响了,比如出现了类似于透明膜状的背景,再比如背景层的颜色太 深使字难以辨认了,此时,就将10设置为透明阈值(如果将11设置为透明阈值,则将所述 字符的背景层的透明度设置为大于O,小于该透明阈值的数值)。实际应用时,也可以根据 经验值来设置透明阈值;当字符的背景层和前景层的颜色不同并且不相近时,也不排除将 透明阈值直接设置为等于或小于255的非0值,这里255是表示完全不透明的值,即所述透 明度的最大值;还可以直接将所述字符的背景层的透明度设置为1。 本实施例中,步骤101中还可以设置所述覆盖字符的背景层的颜色,可以将所述 字符的背景层的颜色设置为和所述屏幕的显示区域相同的颜色,比如,黑色或蓝色;或直接 设置为黑色。各个字符的背景层可以用8个字节来表示,比如当设置背景层的颜色为黑色时,所述字符的背景层的RGB(三原色)值为0x000000,如果将所述字符的背景层的透明度 设置为l,则该字符的背景层表示为0x01000000。 本实施例中,步骤101中,还可以根据需要设置覆盖字符的前景层。 所述步骤101在步骤107前的任一时间进行即可。 102、在显示屏上显示一字幕;所述字幕由至少一个字符组成。 本实施例中,本步骤是在显示屏为空白的情况下,开始显示一字幕;该字幕可以按 如下方式获得将希望在所述显示屏上进行滚动显示的原始字幕的起点作为起始位置;从 该起始位置开始,在所述原始字幕中截取一个或多个字符,组成所述显示屏上所要显示的 字幕;所组成的字幕的总长度不超过所述显示屏的显示区域长度。 本实施例中,为了实现字幕匀速持续滚动,采用了定时覆盖的方式;本实施例中, 使用定时器对各次覆盖的间隔时间进行计时,实际应用时也可以采用计时器、计数器等实 现计时。本实施例中,在显示所述字幕时开始计时;此时可以但不限于按照所设置的覆盖字 符的背景层来显示所述字幕。 定时覆盖的具体步骤如图1中虚线方框内所示,包括
103、定时器的定时时间到达后,进行步骤104。 本实施例中,所述定时器的定时时间为各次覆盖的间隔时间;可以通过调整所述 定时时间来对字符滚动的速度进行调整。如果采用计时器或计数器,则是计时器所计时间 到达所述间隔时间后,或计数器的数值到达与所述间隔时间对应的数值时,进行步骤104。
104、在所述原始字幕中确定新的起始位置; 本实施例中,可以根据字幕滚动的方向和各次重画的步进值来确定新的起始位 置,假设字幕是自右向左水平滚动,步进值为1个字符,则新的起始位置的横坐标为原起始 位置的横坐标加上所述步进值。 比如原始字幕为一字符串"0123456789",所述显示屏的显示区域长度为3个字 符,则步骤102中以该字符串左边界作为起始位置,显示的字幕是"012";在所述定时器的 定时时间第一次到达后,以"0"和"1"之间的位置作为新的起始位置;此时,待显示的字幕 为"123";所述待显示的字幕是由至少一个所述第二字符组成。 105、在所述至少一个字符中确定一个或多个第一字符为待覆盖字符;其中,可以 在所述至少一个字符中确定多个连续的第一字符,或确定所述至少一个字符全部为第一字 符;本实施例中,确定"0 "、" 1 "、" 2 "三个第一字符。 确定与所述第一字符相对应的一个或多个第二字符为覆盖字符,因此步骤101中 其实设置的就是所述第二字符的背景层;实际应用时也可以此时才设置第二字符的背景 层;本实施例中,是在所述待显示字幕中,截取与所述第一字符一一对应的一个或多个连续 的第二字符,也就是说,第二字符的个数与第一字符的个数相同;比如在上例中,就是在待 显示字幕中截取"1"、"2"、"3"三个字符为第二字符,其中第二字符"1"对应于第一字符 "0",第二字符"2"对应于第一字符"1",第二字符"3"对应于第一字符"2"。
107、使用每个所述第二字符覆盖该第二字符对应的所述第一字符进行显示,使得 所述第一字符的任一部分在所述显示屏上没有被显示;也就是将所述显示屏中的第一字符 用对应的第二字符代替,将第二字符显示在显示屏上所述第二字符对应的第一字符的位置 上,由于第二字符的背景层被设置为了非全透明,因此第一字符将被对应的第二字符遮挡
7住;比如在上例中,就是用第二字符"1 "覆盖第一字符"0",第二字符"2"覆盖第一字符"1 ",
第二字符"3"覆盖第一字符"2";覆盖后,所述显示屏上显示的为"123"。 如果需要在显示屏上原先字幕未覆盖到的区域上显示字符,则可以直接显示,无
需復盖。 本实施例中,在覆盖后重新开始计时,即重启所述定时器。 将所述第二字符覆盖到所述第一字符时,如果所述第二字符的尺寸比所述第一字 符小,或者是所述显示屏上原先除了所述第一字符以外还存在其它不需要继续显示的字 符,则清空所述显示屏上所述第二字符未覆盖到的显示区域;所述清空可以是指用空白进 行填充。 可见,本实施例中,对原来显示的字符是直接进行覆盖,而不是擦除后再显示,因
此克服了"擦除-显示"所带来的字幕滚动时会闪烁的问题。实际应用时,也不排除每次覆
盖时都设置一次覆盖字符的背景层的做法,但实质都是用"覆盖"代替"擦除"。 本领域普通技术人员可理解实现上述实施例的方法中全部或部分步骤可通过程
序来指令相关硬件完成,所述程序可存于一计算机的可读取存储介质中,所述可读取存储
介质包括R0M/RAM、光盘、磁碟等。 本实施例中,在步骤105中如果确定第二字符时碰到头字段或尾字段(即位于字 幕开头或结尾处的字段),此时可以在进行步骤107前进行步骤106 :将待显示字幕作为第 一部分待显示字幕;用所述显示屏的显示区域的长度减去第一部分待显示字幕的总长度, 如果需要间隔一定区域,则将该间隔的区域作为第二部分待显示字幕,减去该第二部分待 显示字幕的长度Ll,得到长度L ;所述原始字幕或其它字幕中从起点开始的、总长度为L的 若干个连续的字符作为第三部分的待显示字幕;然后按照第一、第二、第三待显示字幕的顺 序组成新的待显示字幕,然后从中截取第二字符,也就相当于从头字段、尾字段中分别截取 第二字符;在所述显示屏上显示时,所述间隔的区域可用空白填充。这里,可以把间隔的区 域也看成为第二字符,或是要根据第二字符的位置去重新确定第一字符。步骤106可以在 步骤105前进行,这样可以根据待显示字幕确定第一字符。 比如对于上例中的字符串,当待显示字幕为"89"时,如果要间隔的区域为l个字 符,则L为0,此时就是显示"89";而当待显示字幕为"9"时,L为1,则从上述字符串中,从 起点开始截取一个字符"0",然后按照"9"、间隔的区域、"0"的方式组成新的待显示字幕 "90 "。这样可以实现一个字串的循环滚动,或是多个字串的连续滚动。
实施例二,在电子设备中实现字幕滚动的装置,所述电子设备包括一个显示屏,所 述显示屏用于显示一字幕,所述字幕由至少一个字符组成;如图2所示,包括
第一字符确定模块,用于从所述至少一个字符中确定第一字符为待被覆盖字符; 可以但不限于确定所述至少一个字符全部为第一字符。 第二字符确定模块,确定与所述第一字符相对应的第二字符为覆盖字符,所述第 二字符包括有背景层和前景层二个图层;可以但不限于在待显示字幕中截取与所述第一字 符一一对应的一个或多个连续的第二字符;其中,所述待显示的字幕是由至少一个所述第 二字符组成。 第二字符设置模块,用于将所述第二字符的背景层设置为非全透明;本实施例中, 透明度可以用数值表示,通常以O表示透明度为全透明,数值越大表示透明度越低;所述第二字符设置模块将第二字符的背景层的透明度设置为大于o、小于或等于透明阈值的数值。
本实施例中,所述透明阈值的确定可以与实施例一相同。所述第二字符设置模块也可直接 将所述第二字符的背景层的透明度设置为1。 本实施例中,所述第二字符设置模块还可以用于设置所述第二字符的背景层的颜 色,可以设置为和所述屏幕的显示区域相同的颜色,比如,黑色或蓝色;或直接设置为黑色。 各个字的背景可以用8个字节来表示。 本实施例中,所述第二字符设置模块还可以用于根据需要设置第二字符的前景 层。 覆盖模块,用于使用所述第二字符覆盖所述第一字符,使得所述第一字符的任一 部分在所述显示屏上没有被显示;也就是按照所设置的第二字符的背景层将第二字符显示 在所述显示屏中第一字符所在的位置;如果有多个第一、第二字符,则将各第二字符分别显 示在所述显示屏中该第二字符对应的第一字符所在的位置。 所述覆盖模块使用所述第二字符覆盖所述第一字符时,如果所述第二字符的尺寸 比所述第一字符小,或者是所述显示屏上除了所述第一字符以外还存在其它不需要继续显 示的字符,则清空所述显示屏上所述第二字符未覆盖到的显示区域。
还可以包括 字幕提供模块,用于提供希望在所述显示屏上滚动显示的原始字幕;所述原始字
幕可以是字幕提供模块保存的、生成的、或由用户输入的。 所述第二字符确定模块还用于从所述原始字幕中确定待显示字幕。 本实施例中,为了实现字幕匀速持续滚动,需要定时进行覆盖,因此还可以包括一
定时模块,用于进行定时,定时时间为每次覆盖的间隔时间,调整该定时时间可以调整字幕
滚动的速度;本实施例中采用定时器实现。 所述覆盖模块覆盖后重启该定时器。 每次当定时器的定时时间到达时,第一、第二字符确定模块分别确定第一、第二字 符,然后覆盖模块使用第二字符覆盖第一字符。 可见,本实施例中,对原来显示的字符是直接进行覆盖,而不是擦除后再显示,因
此克服了"擦除-显示"所带来的字幕滚动时会闪烁的问题。实际应用时,也不排除每次覆
盖时都设置一次覆盖字符的背景层的做法,但实质都是用"覆盖"代替"擦除"。 本实施例中,所述第二字符确定模块确定第二字符时,可能会碰到头字段或尾字
段(即位于字串开头或结尾处的字段),此时,将原先的待显示字幕作为第一部分的待显
示字幕,用所述屏幕的显示区域的长度减去待显示字幕的总长度及准备间隔的区域的长度
Ll,得到长度L,将准备间隔的区域作为第二部分的待显示字幕;从所述原始字幕或另一原
始字幕中,从起点开始截取总长度为L的若干个连续的字符作为第三部分的待显示字幕,
按照第一、第二、第三部分的顺序组成新的待显示字幕,然后从中截取第二字符。 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟
悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变
形都应属于本发明的权利要求的保护范围。
权利要求
一种在电子设备中实现字幕滚动的方法,所述电子设备包括一个显示屏,所述显示屏上显示有一字幕,所述字幕由至少一个字符组成,其特征在于,所述方法包括从所述至少一个字符中确定第一字符为待被覆盖字符;确定与所述第一字符相对应的第二字符为覆盖字符,所述第二字符包括背景层和前景层两个图层;将所述第二字符的背景层设置为非全透明;使用所述第二字符覆盖所述第一字符,使得所述第一字符的任一部分在所述显示屏上没有被显示。
2. 如权利要求l所述的方法,其特征在于,确定所述至少一个字符为第一字符;在待显示的字幕中截取与所述第一字符相对应的所述第二字符,其中,所述待显示的字幕是由至少一个所述第二字符组成;使用每个所述第二字符覆盖所述第二字符相对应的所述第一字符进行显示。
3. 如权利要求l所述的方法,其特征在于使用所述第二字符覆盖所述第一字符时,如果所述第二字符的尺寸比所述第一字符小,或者是所述显示屏上除了所述第一字符以外还存在其它不需要继续显示的字符,则清空所述显示屏上所述第二字符未覆盖到的显示区域。
4. 如权利要求1所述的方法,其特征在于,将所述第二字符的背景层设置为非透明是指将所述第二字符的背景层的透明度设置为一个大于0、小于成等于透明阈值的数值;其中,透明度为0时表示透明度为全透明。
5. 如权利要求2所述的方法,其特征在于将所述第二字符的背景层的透明度设置为1。
6. —种在电子设备中实现字幕滚动的装置,所述电子设备包括一个显示屏,所述显示屏用于显示一字幕,所述字幕由至少一个字符组成;其特征在于,包括第一字符确定模块,用于从所述至少一个字符中确定第一字符为待被覆盖字符;第二字符确定模块,确定与所述第一字符相对应的第二字符为覆盖字符,所述第二字符包括有背景层和前景层二个图层;第二字符设置模块,用于将所述第二字符的背景层设置为非全透明;覆盖模块,用于按照所设置的第二字符的背景层将第二字符显示在所述显示屏中第一字符所在的位置,使得所述第一字符的任一部分在所述显示屏上没有被显示。
7. 如权利要求6所述的装置,其特征在于,所述第一字符确定模块确定所述至少一个字符为第一字符;所述第二字符确定模块在待显示的字幕中截取与所述第一字符相对应的所述第二字符,其中,所述待显示的字幕是由至少一个所述第二字符组成;所述覆盖模块将每个所述第二字符显示在所述显示屏上所述第二字符相对应的所述第一字符所在的位置。
8. 如权利要求6所述的装置,其特征在于所述覆盖模块按照所设置的第二字符的背景层将第二字符显示在所述显示屏中第一字符所在的位置时,如果所述第二字符的尺寸比所述第一字符小,或者是所述显示屏上除 了所述第一字符以外还存在其它不需要继续显示的字符,则清空所述显示屏上所述第二字 符未覆盖到的显示区域。
9. 如权利要求6所述的装置,其特征在于,所述第二字符设置模块将所述第二字符的背景层设置为非全透明是指所述第二字符设置模块将所述第二字符的背景层的透明度设置为一个大于o、小于或等于透明阈值的数值;其中,透明度为0时表示透明度为全透明。
10. 如权利要求7所述的装置,其特征在于所述第二字符设置模块将所述第二字符的背景层的透明度设置为1。
全文摘要
本发明提供了一种在电子设备中实现字幕滚动的方法和装置。所述方法包括从所述至少一个字符中确定第一字符为待被覆盖字符;确定与所述第一字符相对应的第二字符为覆盖字符,所述第二字符包括背景层和前景层两个图层;将所述第二字符的背景层设置为非全透明;使用所述第二字符覆盖所述第一字符,使得所述第一字符的任一部分在所述显示屏上没有被显示。通过使用本方法,可以实现在字幕的滚动过程中,不必在每次字幕改变的时候进行擦除,从而避免了闪烁问题。
文档编号G09G5/34GK101763846SQ200810246570
公开日2010年6月30日 申请日期2008年12月25日 优先权日2008年12月25日
发明者张建忠, 於朝晖, 武亚强, 王哲鹏, 王巍, 蔡明祥 申请人:北京联想软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1