CN1770098B - 一种动态皮肤的实现方法 - Google Patents

一种动态皮肤的实现方法 Download PDF

Info

Publication number
CN1770098B
CN1770098B CN 200410052129 CN200410052129A CN1770098B CN 1770098 B CN1770098 B CN 1770098B CN 200410052129 CN200410052129 CN 200410052129 CN 200410052129 A CN200410052129 A CN 200410052129A CN 1770098 B CN1770098 B CN 1770098B
Authority
CN
China
Prior art keywords
image
dynamic
skin
frame
play
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200410052129
Other languages
English (en)
Other versions
CN1770098A (zh
Inventor
陆楠
范质彬
陈东明
杜修杏
陈光尧
刘程伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN 200410052129 priority Critical patent/CN1770098B/zh
Publication of CN1770098A publication Critical patent/CN1770098A/zh
Application granted granted Critical
Publication of CN1770098B publication Critical patent/CN1770098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种动态皮肤的实现方法,包括以下步骤:将动态图像作为动态皮肤元素封装至皮肤文件中;在皮肤建立过程中读取动态图像数据流;通过所述动态图像数据流提取图像;播放所述图像,实现皮肤的动态表现。

Description

一种动态皮肤的实现方法
技术领域
本发明涉及计算机动态图像数据处理技术,特别是涉及一种动态皮肤的实现方法。
背景技术
随着信息技术的发展,各种具有数据处理能力的电子设备,如电脑、笔记本电脑、移动终端等日益普及,给人们的学习、工作和生活带来较大的便利。众所周知,电子设备的运行需要硬件和软件的配合,特别是软件产品的重要性正越来越受到人们的重视。
通常,软件在运行时都会形成用户交互界面,便于接收用户的操作指令并且及时反馈操作结果。随着计算机图像处理技术的日益完善,目前已经出现多种皮肤(skin)设计技术来改善软件产品的用户使用体验。
通常,动态皮肤的实现可以提高用户对产品的认同感,现有技术中,实现皮肤界面元素的变化有多种方法。
一种现有技术的方法是通过定时器来实现图像序列(jpg序列或者bmp序列)的连续播放。由于bmp序列是一组连续的bmp图像,通过在这些图像之间的切换实现的动画效果如同电影胶片,但是bmp序列占用空间较大,并且需采用多个文件,所以制作不方便。
另一种现有技术则通过对静态图像的技术处理来实现静态图像表现形式的变化,从而达到界面元素的动态表现,比如通过调整亮度实现图像的闪动效果、和调整图像象素排列方式实现图像的旋转等等。
上述现有技术存在一些不足之处:首先,其实现的是一种有限的图像变化;其次,对通过数字技术处理静态图像得到的动画来说,在某种程度上还对图像的格式和品质有着特殊的要求,这是由于需要对图像进行处理,所以这些图像的清晰度要好,并且图像的背景和前景要区别明显,便于将处理目标区分开。从而,上述现有技术无法得到用户的广泛应用,不适于应用在参与程度很高的皮肤的制作上。
发明内容
本发明解决的技术问题在于提供一种动态皮肤的实现方法,可以丰富皮肤的表现形式、增加皮肤制作中的自由度,改善用户体验。
为此,本发明解决技术问题的技术方案是:提供一种动态皮肤的实现方法,包括以下步骤:
1)将动态图像以COM对象形式封装至皮肤文件中;
2)在皮肤建立过程中,先读取动态图像数据流,再从读到的动态图像数据流提取出图像,获得图像帧数和每帧的大小,并获取图像第一帧的指针;
3)根据是否达到帧间隔逐帧播放所述图像,实现皮肤的动态表现。
优选地,步骤3)中采用GDI+实现图像的播放。
优选地,步骤3)所述根据是否达到帧间隔逐帧播放所述图像具体包括:
31)判断是否达到帧之间的时间间隔,如果是,则进入步骤32);如果否,则继续等待;
32)判断图像是否播放完毕;如果是,则退出流程;如果否,则转入步骤33);
33)取得下一帧的图像指针,随后返回步骤33)。
优选地,还包括:当图像播放结束之后产生回调操作,用于进行播放结束后的响应。
优选地,所述回调操作是皮肤文件产生的COM事件。
优选地,在步骤2)所述读取动态图像数据流之前,步骤2)还包括:记录和保存当前操作;相应的,在所述步骤3)中,当播放结束后执行所述保存的操作。
优选地,在所述步骤3)中,启动定时器以定时检查判断图像的播放是否超时和检查图像是否播放完毕;当图像播放完毕后或者播放超时,产生播放完毕通知中止播放。
优选地,在所述步骤3)中,还包括:
3a)判断是否接收到皮肤图像播放成功消息;如果是,则进入步骤3b);如果否,则进入步骤3d);
3b)通知对应图像启动成功;同时启动定时器;
3c)判断图像是否播放完毕,或者播放超时;如果图像播放完毕或者超时,则转入步骤3d);如果未播放完毕且未超时,则继续等待;
3d)结束图像播放,执行前述保存的操作。
优选地,所述动态图像是GIF图像文件。
相对于现有技术,本发明的有益效果是:首先,由于本发明通过在皮肤上集成动态图像元素来改变皮肤的表现形式,可以克服现有的客户端界面比较单调的情况,从而给用户提供一个可以变化的皮肤,改善用户体验。其次,对于本发明的素材采用动态图像,即将动态图像作为皮肤元素,由于网络资源的存在,可以较大地丰富皮肤的表现形式,有着很大的应用前景。并且,由于动态皮肤元素可以在脚本中加以控制,所以用户在皮肤制作中的自由度将会有所增加,皮肤的表现形式可以更加的丰富。
此外,在本发明的优选实施例中,增加了一个COM事件,每次在图像播放结束的时候都会产生这个事件,用来处理一些图像播放结束后的操作,使得图像的播放更加的灵活;对于用户来说,这样的功能可以加强用户对播放过程的控制。
另外,由于本发明的优选实施例在皮肤中引入动态图片格式如GIF等来实现皮肤的动态效果,而GIF文件是一个文件,加上现在有很多软件可以制作GIF,所以本发明的实现比较简单,并且空间占用小。
附图说明
图1是本发明动态皮肤的实现方法的流程图;
图2是本发明读取GIF文件的实施例的流程图;
图3是本发明实施例中启动和结束图像播放的流程图。
具体实施方式
本发明主要的构思在于通过实现在皮肤上集成动态图像元素来改变皮肤的表现形式,给用户提供一个可以变化的皮肤.
请参阅图1,是本发明动态皮肤的实现方法的流程图。
步骤S1,将动态图像作为动态皮肤元素封装至皮肤文件中。
当前的皮肤模型是采用按钮(button)、图片(picture)等皮肤元素的拼接形成的一个完整界面。这些皮肤元素在工程中以COM(Component ObjectModel)的形式存在,所以如果将动态图像封装成一个COM对象并引入到皮肤模型元素中,就可以实现动态图像在皮肤上的表现。
所述动态图像格式可以是GIF等,所述COM封装就是封装一个GIF文件,由于GIF文件是一个文件,并且现在有很多软件可以制作GIF,所以相对于现有技术中占用空间较大并且需采用多个文件的bmp序列来说,其实现比较简单,并且空间占用小。
步骤S2,当在皮肤建立过程中读到动态皮肤元素时,根据步骤S1)中所述皮肤文件读取动态图像数据流。
如前所述,GIF文件作为皮肤元素封装在皮肤文件中。当建立皮肤时,由建立皮肤的程序(逻辑)读取各种元素,当读取到其中包含动态皮肤元素时,则需要根据该皮肤文件中指定的路径读取动态图像数据流。
步骤S3,通过所述动态图像数据流提取图像;
步骤S4,播放所述图像,实现皮肤的动态表现。
本发明的实施例中,采用GDI+技术进行图像的播放。
GDI+作为Windows XP的一个子系统,凭借其给用户带来的全新的用户体验,已经被得到广泛的运用。尤其是其中的多图片支持,为程序开发人员提供了一个比较方便安全的图像技术开发手段。由于该技术对应用平台没有多大的限制,只要系统中存在GDIplus.Dll就可以运行GDI+程序。但是,尽管在GDI+中提供了对GIF等具有动态效果的图像的支持,在程序中仍然需要对引入的图像文件进行解读。也就是说,虽然GDI+能支持图像格式,使得不需要去分析图像的压缩和图像的存储结构,但是里面的具体数据还是需要一一抽取。
请参阅图2,是本发明读取GIF文件的实施例的流程图。
步骤S11,读取动态图像数据流。
GIF图像是基于颜色列表的(即存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。在GIF文件内部分成许多存储块,用来存储多幅图像或者是决定图像表现行为的控制块,用以实现动画和交互式应用。
通常,一个GIF文件的结构可分为文件头(File Header)、GIF数据流(GIFData Stream)和文件终结器(Trailer)三个部分。文件头包含GIF文件署名(Signature)和版本号(Version);GIF数据流由控制标识符、图像块(Image Block)和其他的一些扩展块组成;文件终结器只有一个值为0x3B的字符(′;′)表示文件结束。
步骤S12,通过得到的图像数据流提取出图像。
步骤S13,取得图像每帧的大小和帧的数目。
步骤S14,取得图像第一帧的指针。
步骤S15,判断是否达到帧之间的时间间隔。如果是,则进入步骤S16;如果否,则继续等待。
步骤S16,在数据输出设备(如显示器等)上播放图像。
步骤S17,判断图像是否播放完毕。如果是,则退出流程;如果否,则进入步骤S18。
步骤S18,取得下一帧的图像指针,随后转入步骤S15。
由于动态图像的播放需要一段时间,所以如果需要做一些在动画播放结束后的操作,比如说button或者picture的隐藏、面板的显示等,就不可以将这些操作集成在一个函数体中,所述的函数体位于皮肤文件中,用于定义皮肤在得到消息后的行为方式。所以在GIF播放结束后要通知皮肤去执行一系列操作,作为一种结束的响应。
但是,GDI+播放的动态图像文件并没有实现这样的回调操作,因此需要将所述回调操作通过回调函数的形式添加到皮肤文件中,在GIF播放结束后通知皮肤去做一些结束后的操作。同时,为了使皮肤中的GIF播放具有更好的扩展性和用户的可控性,需要将回调函数交给皮肤的脚本处理。
本实施例中,为了实现这一功能,增加一个COM事件,每次在GIF播放结束的时候都会产生这个COM事件。实现该事件可以处理一些GIF播放结束后的操作,使得GIF的播放更加的灵活。对于用户来说,这样的功能可以加强用户对播放的过程控制。例如,可以在该事件中实现再次触发GIF播放从而实现GIF的连续播放等功能。
所述播放结束指的是GIF运行到最后一帧或者被暂停。
在动态皮肤的表现中,启动动画和结束动画是一个比较重要的表现。本实施例中,通过中断并保存当前的操作而去优先执行动画播放(所述动画播放是指前面的在输出设备上播放图像)来实现的。并且在动画的播放过程中,本实施例通过一个定时器来等待动画结束时继续执行保存的操作。同时,本实施例还产生一个判断动画播放结束的标志,如果播放结束或者动画播放超时,将会自动执行前述保存的操作。
请参阅图3,是本发明的实施例中启动和结束播放的流程图。
步骤S21,中断当前操作,进入皮肤文件中需要播放动画的函数体。
步骤S22,记录和保存当前的操作,以便后继处理。
步骤S23,启动动画。
步骤S24,判断是否接收到皮肤动画播放成功消息;如果是,则进入步骤S25;如果否,则转入步骤S27。
步骤S25,通知对应动画启动成功;同时进入步骤S31,启动定时器。
步骤S26,当动画结束时通知播放完毕。
步骤S32,在启动定时器后进行等待。
步骤S33,判断动画是否播放完毕,或者播放超时;如果动画播放完毕或者超时,则转入步骤S27;如果,未播放完毕且未超时,则继续等待。
步骤S27,执行前述保存的操作。
综上所述,本发明在皮肤中引入动态图像,所述动态图像在皮肤上作为一个皮肤元素;并且根据需要在进行图像的播放;通过回调操作来实现动态皮肤元素在皮肤中的消息传递,例如可以在其中实现再次触发GIF播放从而实现GIF的连续播放等功能;结合定时器,也可以实现动态图像的连续播放,完成皮肤的动态效果。
在上述实施例中,本发明采用GIF图像进行详细描述。可以理解,本发明并不限于GIF图像,其他具有动态效果的图像格式文件也适用本发明的动态皮肤实现方法。
以上所述仅仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (9)

1.一种动态皮肤的实现方法,其特征在于,包括以下步骤:
1)将动态图像以COM对象形式封装至皮肤文件中;
2)在皮肤建立过程中,先读取动态图像数据流,再从读到的动态图像数据流提取出图像,获得图像帧数和每帧的大小,并获取图像第一帧的指针;
3)根据是否达到帧间隔逐帧播放所述图像,实现皮肤的动态表现。
2.根据权利要求1所述的动态皮肤的实现方法,其特征在于:所述步骤3)中采用GDI+实现图像的播放。
3.根据权利要求1所述的动态皮肤的实现方法,其特征在于,步骤3)所述根据是否达到帧间隔逐帧播放所述图像具体包括:
31)判断是否达到帧之间的时间间隔,如果是,则进入步骤32);如果否,则继续等待;
32)判断图像是否播放完毕;如果是,则退出流程;如果否,则转入步骤33);
33)取得下一帧的图像指针,随后返回步骤31)。
4.根据权利要求1所述的动态皮肤的实现方法,其特征在于,还包括:当图像播放结束之后产生回调操作,用于进行播放结束后的响应。
5.根据权利要求4所述的动态皮肤的实现方法,其特征在于:所述回调操作是皮肤文件产生的COM事件。
6.根据权利要求1所述的动态皮肤的实现方法,其特征在于,在步骤2)所述读取动态图像数据流之前,步骤2)还包括:记录和保存当前操作;
相应的,在所述步骤3)中,当播放结束后执行所述保存的操作。
7.根据权利要求6所述的动态皮肤的实现方法,其特征在于:在所述步骤3)中,启动定时器以定时检查判断图像的播放是否超时和检查图像是否播放完毕;当图像播放完毕后或者播放超时,产生播放完毕通知中止播放。
8.根据权利要求6所述的动态皮肤的实现方法,其特征在于,在所述步骤3)中,还包括:
3a)判断是否接收到皮肤图像播放成功消息;如果是,则进入步骤3b);如果否,则进入步骤3d);
3b)通知对应图像启动成功;同时启动定时器;
3c)判断图像是否播放完毕,或者播放超时;如果图像播放完毕或者超时,则转入步骤3d);如果未播放完毕且未超时,则继续等待;
3d)结束图像播放,执行前述保存的操作。
9.根据权利要求1至8任一项所述的动态皮肤的实现方法,其特征在于:所述动态图像是GIF图像文件。
CN 200410052129 2004-11-05 2004-11-05 一种动态皮肤的实现方法 Active CN1770098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410052129 CN1770098B (zh) 2004-11-05 2004-11-05 一种动态皮肤的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410052129 CN1770098B (zh) 2004-11-05 2004-11-05 一种动态皮肤的实现方法

Publications (2)

Publication Number Publication Date
CN1770098A CN1770098A (zh) 2006-05-10
CN1770098B true CN1770098B (zh) 2010-05-05

Family

ID=36751421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410052129 Active CN1770098B (zh) 2004-11-05 2004-11-05 一种动态皮肤的实现方法

Country Status (1)

Country Link
CN (1) CN1770098B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899038B (zh) * 2015-06-12 2018-09-11 北京金山安全软件有限公司 一种界面样式变换方法及装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079880B (zh) * 2006-12-19 2011-05-11 腾讯科技(深圳)有限公司 根据节目内容自动更换软件界面的系统与方法
CN100549952C (zh) * 2008-03-18 2009-10-14 腾讯科技(深圳)有限公司 一种可扩展的皮肤系统及其实现方法
CN104519404B (zh) * 2013-09-29 2018-02-16 北京新媒传信科技有限公司 图像互换格式文件的播放方法及装置
CN103631630B (zh) * 2013-12-17 2017-04-19 北京奇虎科技有限公司 浏览器动态皮肤的加载方法和浏览器装置
CN106468996A (zh) * 2016-09-07 2017-03-01 北京众纳鑫海网络技术有限公司 计算机视频桌面的背景视频控制方法及装置
CN108898652B (zh) * 2018-06-13 2022-11-25 珠海豹趣科技有限公司 一种皮肤图像设置方法、装置及电子设备
CN109739607B (zh) * 2018-12-29 2021-11-09 深圳乐信软件技术有限公司 动态图像加载方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003017077A1 (en) * 2001-08-16 2003-02-27 Nokia Corporation Skins for mobile communication devices
US6791581B2 (en) * 2001-01-31 2004-09-14 Microsoft Corporation Methods and systems for synchronizing skin properties

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791581B2 (en) * 2001-01-31 2004-09-14 Microsoft Corporation Methods and systems for synchronizing skin properties
WO2003017077A1 (en) * 2001-08-16 2003-02-27 Nokia Corporation Skins for mobile communication devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899038B (zh) * 2015-06-12 2018-09-11 北京金山安全软件有限公司 一种界面样式变换方法及装置

Also Published As

Publication number Publication date
CN1770098A (zh) 2006-05-10

Similar Documents

Publication Publication Date Title
CN102279739B (zh) 屏幕操作的记录方法和应用
CN108989609A (zh) 视频封面生成方法、装置、终端设备及计算机存储介质
CN109040615A (zh) 视频特效添加方法、装置、终端设备及计算机存储介质
CN108173742B (zh) 一种图像数据处理方法、装置
CN105278950B (zh) 用于执行视频通话增强功能的方法及其电子装置
CN111078070B (zh) Ppt视频弹幕的播放控制方法、装置、终端及介质
CN112306607A (zh) 截图方法和装置、电子设备和可读存储介质
CN106970498B (zh) 显示方法及电子设备
CN106572380A (zh) 用户终端及视频动态缩略图的生成方法
CN102546933A (zh) 一种快速设置手机壁纸的方法
EP4171046A1 (en) Video processing method, and device, storage medium and program product
CN1770098B (zh) 一种动态皮肤的实现方法
CN109361947A (zh) 网络资源批量加载方法、智能电视、存储介质及装置
CN113076048A (zh) 视频的展示方法、装置、电子设备和存储介质
US20240143649A1 (en) Multimedia information processing method, apparatus, electronic device, and medium
CN112351093A (zh) 截屏图像共享方法、装置、设备及计算机可读存储介质
CN111078078A (zh) 视频播放控制方法、装置、终端及计算机可读存储介质
CN101014094A (zh) 捕获实时图像的方法
CN107292944A (zh) 一种屏幕图像的录制方法及录制系统
WO2023221941A1 (zh) 图像处理方法、装置、设备及存储介质
CN106339235A (zh) 一种界面展示方法和装置
CN116708696B (zh) 视频处理方法和电子设备
CN105183288B (zh) 单窗口多任务显示方法及其智能移动终端
CN106504057A (zh) 一种电子礼物的显示方法及装置
CN115690664A (zh) 一种图像处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant