发明内容
本发明所要解决的技术问题是提供一种方法,使得用户定义的图像显示特效,以及需要进行特殊显示的图像或文字资源,能够传递至位于操作系统内核层的视频显示设备驱动程序,并由视频显示设备驱动程序执行用户定义的特效方案。
本发明还提供了一种实现图像特效的装置和视频显示卡,以保证上述方法在实际中的应用。
为了解决上述问题,本发明公开了一种实现图像特效的方法,包括:
位于操作系统应用层的特效设置应用程序接收用户定义的特效设置信息,并依据上述特效设置信息,生成特效脚本;
所述特效设置应用程序将所述特效脚本传递至视频显示设备驱动程序;
所述视频显示设备驱动程序解析上述特效脚本,执行用户定义的特效。
优选的,所述特效设置应用程序将所述特效脚本传递至视频显示设备驱动程序的方法为:
所述特效设置应用程序采用进程间通讯的方式,将特效脚本传递至同属于操作系统应用层的驱动程序属性页模块;
驱动程序属性页模块将所述特效脚本传递到位于操作系统内核层的驱动程序模块。
优选的,所述特效设置信息包括标识有唯一标识符的特效显示对象、特效算法和特效参数,其中:
特效显示对象是文本串、文本文件、或图像文件,其中,图像文件的格式为BMP、或JPG;
特效算法是能够执行特效显示的算法代码;
特效参数是上述特效算法所需要的参数的参数值。
优选的,所述特效脚本是以一定格式组织所述特效设置信息而形成的文本,所述文本的数据项包括:
特效信息类型、标识符、脚本长度和脚本内容,其中,各数据项之间由分隔符隔开。
优选的,所述视频显示设备驱动程序解析特效脚本的方法为:
依据所述特效设置信息的唯一标识符,解析获得相关的文字资源、图像资源、特效算法资源、和/或特效参数资源,还原出用户定义的特效设置信息。
优选的,所述图像特效应用程序由视频显示设备驱动程序附带的属性页调用执行。
优选的,所述操作系统平台为微软的视窗系统。
依据本发明的另一实施例,还公开了一种实现图像特效的装置,包括视频显示设备驱动程序模块、特效设置应用程序模块,其中:
特效设置应用程序模块处于操作系统的应用层,包括特效定义子模块、脚本生成子模块和信息传递子模块,其中,特效定义子模块用于接收用户定义的特效设置信息;脚本生成子模块依据上述特效设置信息,生成特效脚本;信息发送子模块将所述特效脚本传递至视频显示设备驱动程序模块;
所述视频显示设备驱动程序模块包括信息接收子模块、脚本解析子模块和脚本执行子模块,其中,信息接收子模块处于操作系统应用层,用于接收特效设置应用程序传递来的特效脚本,并将所述特效脚本传递至处于内核层的脚本解析子模块;脚本解析子模块处于操作系统内核层,用于解析上述特效脚本,还原用户定义的特效信息;脚本执行子模块处于操作系统内核层,用于准备特效资源,执行用户定义的特效。
优选的,位于应用层的特效设置应用程序模块与位于内核层的视频显示设备驱动程序模块的通讯方式为:
所述特效设置应用程序模块的信息发送子模块通过进程间通讯的方式,将特效脚本传递至视频显示设备驱动程序模块的信息接收子模块,然后,交属性页将所述特效脚本传递到位于内核层的脚本解析子模块。
依据本发明又一实施例,还公开了一种实现图像特效的视频显示卡,所述视频显示卡的驱动程序模块包括信息接收子模块、脚本解析子模块和脚本执行子模块,其中:
信息接收子模块处于操作系统应用层,用于接收应用程序传递来的特效脚本,并将所述特效脚本传递至处于内核层的脚本解析子模块;
脚本解析子模块处于操作系统内核层,用于解析上述特效脚本,还原用户定义的特效信息;
脚本执行子模块处于操作系统内核层,用于准备特效资源,执行用户定义的特效。
优选的,所述信息接收子模块以进程间通讯的方式获得应用程序传递来的特效脚本,然后,交属性页将所述特效脚本传递到位于内核层的脚本解析子模块。
与现有技术相比,本发明具有以下优点:
本发明方案将用户在应用层定义的文字、图像、特效算法、特效参数等特效信息,以脚本语言的形式传递到位于内核层的驱动程序,并通过解析还原特效信息,使得视频显示设备能够执行用户定义的图像特效,从而解决了现有技术中用户无法直接与位于操作系统内核层的视频显示设备驱动程序交互的问题,使得用户不仅能够使用现有系统提供的固定模式的图像特效的方式,还可以针对特定的文字或图像资源,定义灵活多样的特效显示模式。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的核心构思之一在于,将用户在应用层定义的图形特效,包括文字、图像等资源、特效算法、特效参数等特效信息,以脚本语言的形式传递到位于内核层的驱动程序,并通过解析还原特效信息,使得视频显示设备能够执行用户定义的图像特效,从而解决了用户无法直接与位于操作系统内核层的视频显示设备驱动程序交互的问题。
参照图1,示出了本发明一种实现图像特效的方法实施例流程图,具体包括以下步骤:
步骤101:特效设置应用程序接收用户定义的特效设置信息,并生成特效脚本。
用户定义的特效设置信息包括:准备采用的文字、图像、特效执行算法以及特效执行参数等资源,每个资源都有一个唯一的标识符(ID),其中:
文字资源:可以是某个ASCII文件中的整篇文字,也可以是由用户输入的文字字符串。
图像资源:以特定格式存储的图像文件,如BMP文件、JPG文件、TIFF文件等等。
特效执行算法资源:以ASCII码形式表现的具体的特效执行算法代码,这里对采用的代码语言并没有要求(C、Basic、Pascal等都可以),只需要能够由后面的脚本解析模块解析即可。代码中将包含对文字资源、图像资源、图像设备里输出的图像资源的操作方式,以及特效执行参数。
特效执行参数资源:执行该特效所需要的参数,这些参数在特效执行算法代码中是以ID作为变量的形式出现,在这里就对这些变量具体赋值,从而,可以最大限度地重复利用特效执行算法。
在本发明方法实施例的优选方案中,特效脚本是将用户的自定义特效设置资源转换而成的ASCII码形式的文本,每个特效资源被转换后的内容包括下述数据项:
资源类型、资源ID、脚本长度、脚本内容
其中,各数据项之间由分隔符隔开,分隔符可以是“‖”或“、”等脚本内容中一般不会用到的符号。
针对各类资源,优选的转换方式是:
文字资源:如果是ASCII文件,就将文件复制到指定的系统目录下,以新的文件名作为该特效脚本的内容,并指明其是一个文件;如果是由用户输入的文字,则直接作为脚本内容。
图像资源:将文件复制到指定的系统目录下,以新的文件名作为该特效脚本的内容。
特效执行算法资源:直接将ASCII码形式的特效执行算法代码作为该特效脚本的内容。
特效执行参数:直接将参数赋值的ASCII码作为该特效脚本的内容。
步骤102:特效设置应用程序将所述特效脚本传递至视频显示设备驱动程序。
本发明方法实施例优选的传递方式是:
特效设置应用程序通过进程间通讯的方式,将特效脚本传递至同属于操作系统应用层的驱动程序属性页模块;
驱动程序属性页模块将所述特效脚本传递到位于操作系统内核层的驱动程序模块。
以脚本语言的方式组织用户自定义的特效资源,可以突破驱动程序属性页的限制,使得视频显示设备驱动程序可以接受并执行复杂的图像显示效果。
步骤103:视频显示设备驱动程序解析上述特效脚本,还原成特效设置信息。
依据所述特效设置信息的唯一标识符,解析获得相关的文字资源、图像资源、特效算法资源、和/或特效参数资源,还原出用户指定的特效设置信息。
针对步骤101中优选的脚本编码方案,对应的解析方式是:
文字资源:如果是ASCII文件,就从指定的文件中读出其中的文字数据;否则,直接将其作为文字数据。
图像资源:从指定的文件中读出其中的图像数据。
特效执行算法资源:由于特效执行算法代码是以ASCII码的形式传递过来的,不能直接被执行,因此需要代码进行逐一解释再执行。方法是:对于常量或变量,为其分配存储单元;对于赋值语句,修改相应的存储单元;对于条件语句,比较相应的存储单元;对于流程控制语句,根据不同的条件选择解释、执行不同的语句,对于循环体和自定义的子函数,则将其分解、填充到主函数代码中。这个过程的原理即是常规的脚本语言解析器的工作原理,在具体编码实现时可以借鉴业界已经公开的脚本语言解析器实现。
特效执行参数:将ASCII码转变为数值形式的参数。
步骤104:视频显示设备驱动程序依据所述特效设置信息,执行用户定义的特效。
在上述方法实施例的另一优选方法实施例中,为了符合用户的操作习惯,将自定义图像设备驱动特效的发起端建立在驱动附带的属性页上,通过属性页调用事先开发的特效设置应用层软件。
本发明还公开了另一方法实施例,在该方法实施例中,特效设置应用程序模块生成的特效脚本,以文本方式写入位于系统目录下的指定文件中,驱动程序从上述文件中读取特效脚本,具体步骤包括:
步骤101:特效设置应用程序接收用户定义的特效设置信息,并生成特效脚本。
步骤102:特效设置应用程序将所述特效脚本传递至视频显示设备驱动程序。
首先,特效设置应用程序将步骤101生成的特效脚本写入位于系统目录下的指定文件中,如:v-driver.ini;
然后,视频显示设备驱动程序从上述v-driver.ini文件中读取获得特效脚本。
步骤103:视频显示设备驱动程序解析上述特效脚本,还原成特效设置信息。
步骤104:视频显示设备驱动程序依据所述特效设置信息,执行用户定义的特效。
下面以图像Alpha融合特效为例说明上述方法实施例的执行过程:
在驱动程序里加入图像Alpha融合的算法AlphaBlending,该图像融合算法功能是:把用户提供的图像,在用户指定的坐标位置,以透明度为m的Alpha融合度与驱动获取的视频图像进行融合合并。
首先,用户进行特性设置时,通过特效设置应用程序界面录入以下参数:准备进行融合的图像A的完整路径文件名、图像A在视频图像中出现的坐标位置(123,45),图像A的Alpha融合度67%;
然后,特效设置应用程序依据上述特效设置信息生成下述特效脚本,并将图像A复制到系统目录下,文件名改为A_ID:
图像文件A_ID 4 A_ID
特效算法ALG_ID 37 AlphaBlending(A_ID,X_ID,Y_ID,M_ID)
参数A_ID 4 A_ID
参数X_ID 3 123
参数Y_ID 2 45
参数M_ID 2 67
之后,特效设置应用程序将上述特效脚本,通过驱动程序的属性页传递至内核层的驱动程序;
位于内核层的驱动程序在收到上述脚本内容,即对其进行解析,进而得到以下信息:采用图像Alpha融合算法AlphaBlending,被融合图像文件名称为A_ID,图像A应该在视频图像的坐标位置(123,45)出现,图像A的Alpha融合度为67%;
最后,驱动程序依据上述特效资源执行特效算法,即从文件A_ID中读入图像数据,然后在驱动程序获取的视频图像上,在坐标值为(123,45)的位置进行融合度为67%的两个图像的Alpha融合。
参照图2,示出了本发明一种实现图像特效的装置实施例结构框图,具体包括:
模块21:特效设置应用程序模块,处于操作系统的应用层,包括特效定义子模块211、脚本生成子模块212和信息传递子模块213,其中,特效定义子模块211用于接收用户定义的特效设置信息;脚本生成子模块212依据特效定义子模块211获取的特效设置信息,生成特效脚本;信息发送子模块213将脚本生成子模块212生成的特效脚本传递至视频显示设备驱动程序模块22;
模块22:视频显示设备驱动程序模块,包括信息接收子模块221、脚本解析子模块222和脚本执行子模块223,其中,信息接收子模块221处于操作系统应用层,用于接收特效设置应用程序模块21传递来的特效脚本,并将所述特效脚本传递至处于内核层的脚本解析子模块222;脚本解析子模块222处于操作系统内核层,用于解析上述特效脚本,还原用户定义的特效设置信息;脚本执行子模块223处于操作系统内核层,用于依据脚本解析子模块222解析获得的特效设置信息,执行用户定义的特效。
其中,位于应用层的特效设置应用程序模块21与位于内核层的视频显示设备驱动程序22的通讯方式为:
位于应用层的信息发送子模块213通过进程间通讯的方式,将特效脚本传递至同样位于应用层的信息接收子模块221,然后,交属性页模块将所述特效脚本传递至位于内核层的脚本解析子模块222。
本发明还公开了一种可实现图像特效的视频显示卡,所述视频显示卡的驱动程序具体包括:
模块221:信息接收模块,用于接收应用程序传递来的特效脚本,并将所述特效脚本传递至处于内核层的脚本解析模块222;该信息接收模块位于操作系统的应用层。
其中,信息接收模块221以进程间通讯的方式获取同样位于应用层的应用程序传递来的特效脚本,然后,交属性页模块将所述特效脚本传递至位于内核层的脚本解析模块222。
模块222:脚本解析模块,用于解析上述特效脚本,还原用户定义的特效设置信息;该脚本解析模块位于操作系统的内核层。
模块223:脚本执行模块,用于依据脚本解析模块222解析获得的特效设置信息,执行用户定义的特效;该脚本执行模块位于操作系统的内核层。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种实现图像特效的方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。