一种文件版本的识别方法及识别客户端与流程

文档序号:12604447阅读:266来源:国知局
一种文件版本的识别方法及识别客户端与流程

本申请涉及数据处理技术领域,特别涉及一种文件版本的识别方法及识别客户端。



背景技术:

随着图像处理技术的不断发展,越来越多复杂的图像数据都能够被处理并在屏幕上渲染出来。当前,进行图像处理的主流软件可以包括3dsmax和maya。

现有的渲染文件可以通过3dsmax或maya中的插件进行场景分析。在进行场景分析时,往往需要选择与渲染文件的版本相一致的软件。如果软件的版本与渲染文件的版本不一致,则会导致分析失败、渲染失败,无法得到渲染文件想要展示的图像效果。因此,对于渲染文件的版本进行识别至关重要。

当前,通常可以通过两种方式对渲染文件的版本进行识别。一种是通过人工识别的方式,逐一对每个渲染文件进行识别。这种方式不仅识别效率较低,而且对识别人员的专业知识要求较高。另一种是通过抓取计算机上所有软件的版本,并利用版本最高的软件通过命令行的方式分析渲染文件的真实版本。这种方式存在以下缺陷:

当渲染文件的版本高于计算机中软件的最高版本时,最高版本的软件则无法打开渲染文件。在无法打开渲染文件的情况下就无法对渲染文件的版本进行识别。当渲染文件的版本低于于计算机中软件的最高版本时,由于是通过命令行分析,最高版本的软件势必会打开该渲染文件。然而当渲染文件比较复杂时,打开的时间通常会在十几分钟乃至半个小时,占用的内存也十分巨大,这就造成了严重的资源浪费,识别的效率也很低。

应该注意,上面对技术背景的介绍只是为了方便对本申请的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本申请的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。



技术实现要素:

本申请实施方式的目的在于提供一种文件版本的识别方法及识别客户端,能够提供版本识别的效率。

为实现上述目的,本申请一方面提供一种文件版本的识别方法,所述方法包括:基于预先加载的渲染插件检测当前是否有待识别文件输入;当检测到有待识别文件输入时,确定所述待识别文件的类型;确定与所述待识别文件的类型相匹配的识别规则;根据所述识别规则,识别出所述待识别文件的版本信息。

进一步地,基于预先加载的渲染插件检测当前是否有待识别文件输入具体包括:利用预先加载的Local Render插件检测是否发生预设事件,所述预设事件与输入待识别文件的行为相关联。

进一步地,确定所述待识别文件的类型具体包括:提取所述待识别文件的扩展名,并根据提取的所述扩展名确定所述待识别文件的类型。

进一步地,识别出所述待识别文件的版本信息具体包括:利用预设接口函数从所述待识别文件中读取关键字信息,并从所述关键字信息中提取版本信息。

进一步地,利用预设接口函数从所述待识别文件中读取关键字信息具体包括:当所述待识别文件的类型为maya文本格式时,读取包含requires maya字符信息的关键字信息;当所述待识别文件的类型为maya二进制格式时,读取包含UVER字符信息的关键字信息。

进一步地,所述方法还包括:当所述待识别文件的类型为3dsmax格式文件时,对所述待识别文件进行解压缩,并从解压缩后的文件中读取包含3dsMaxVersion字符信息的关键字信息。

进一步地,从所述关键字信息中提取版本信息具体包括:从所述关键字信息中识别特征字符,并将所述特征字符之后的字符串作为版本信息。

进一步地,在识别出所述待识别文件的版本信息之后,所述方法还包括:利用预先加载的Local Render插件调用与识别出的版本信息相匹配的渲染软件,并利用所述渲染软件对所述待识别文件进行场景分析。

为实现上述目的,本申请另一方面还提供一种文件版本的识别客户端,所述客户端包括:文件检测单元,用于基于预先加载的渲染插件检测当前是否有待识别文件输入;文件类型确定单元,用于当检测到有待识别文件输入时,确定所述待识别文件的类型;识别规则确定单元,用于确定与所述待识别文件的类型相匹配的识别规则;版本信息识别单元,用于根据所述识别规则,识别出所述待识别文件的版本信息。

进一步地,所述文件检测单元包括:事件检测模块,用于利用预先加载的Local Render插件检测是否发生预设事件,所述预设事件与输入待识别文件的行为相关联。

由以上本申请实施方式提供的技术方案可见,本申请避免使用命令行来进行版本识别,而是根据待识别文件的类型确定相匹配的识别规则,并基于匹配出的识别规则识别出所述待识别文件的版本信息。这样,在对所述待识别文件进行识别时,无需依赖计算机中安装的软件,同时也避免了打开待识别文件所耗费的时间和所占用的资源,从而能够提高版本识别的效率。

参照后文的说明和附图,详细公开了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。

针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。

应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。

附图说明

所包括的附图用来提供对本申请实施方式的进一步的理解,其构成了说明书的一部分,用于例示本申请的实施方式,并与文字描述一起来阐释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本申请一个实施方式提供的文件版本识别方法的流程图;

图2为本申请一个实施方式提供的识别客户端的功能模块图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本申请一部分实施方式,而不是全部的实施方式。基于本申请中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施方式,都应当属于本申请保护的范围。

本申请提供一种文件版本的识别方法。图1为本申请一个实施方式提供的文件版本识别方法的流程图。虽然下文描述流程包括以特定顺序出现的多个操作,但是应该清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。请参阅图1,所述方法可以包括以下步骤。

步骤S1:基于预先加载的渲染插件检测当前是否有待识别文件输入。

在本实施方式中,可以通过渲染客户端对待识别文件进行识别。所述渲染客户端可以是具备数据处理和数据存储的硬件设备以及支持所述硬件设备进行正常运作的软件的集合体。在所述渲染客户端中,可以预先加载渲染插件。在本实施方式中,所述渲染插件可以包括所述渲染客户端中集成的本地插件,也可是包括3dsmax插件和maya插件。所述渲染插件可以中可以包括预设数量的函数,其中各个函数均可以执行不同的操作。这样,通过调用渲染插件中的函数,便可以对待识别文件进行各种处理。

在本实施方式中,加载所述渲染插件的时机可以是渲染客户端刚开始启动时,也可以是在渲染客户端认证了用户的身份之后。这样,在对待识别文件进行识别之前,所述渲染客户端中便可以具备了加载好的渲染插件。

在本实施方式中,所述待识别文件可以输入所述渲染客户端中,从而经过所述渲染客户端对所述待识别文件进行版本识别。具体地,在本实施方式中,所述待识别文件可以是被用户通过鼠标点击等方式拖入所述渲染客户端中的,也可以是所述渲染客户端根据预先获取的存储路径,从所述存储路径下读取的。

在本实施方式中,当所述待识别文件输入所述渲染客户端中时,所述渲染客户端中会建立与输入所述待识别文件的行为相对应的事件。所述事件可以为所述渲染客户端中的一个进程,可以通过日志的方式保存于预设的临时存储空间中。在本实施方式中,可以通过对该事件进行检测,从而检测当前是否有待识别文件输入。

在本实施方式中,在所述渲染客户端中预先加载的渲染插件可以检测当前是否有待识别文件输入。具体地,所述渲染插件中可以包括Local Render插件,可以利用Local Render插件检测是否发生预设事件,所述预设事件与输入待识别文件的行为相关联。当检测到所述预设事件时,便可以确定当前有待识别文件输入;否则表明当前没有待识别文件输入。在本实施方式中,所述Local Render插件可以检索所述临时存储空间中的各个事件名称,当检测到与输入待识别文件的行为相对应的事件名称时,则可以确定当前有待识别文件输入。

步骤S2:当检测到有待识别文件输入时,确定所述待识别文件的类型。

在本实施方式中,所述待识别文件可以是3dsmax文件,也可以是maya文件。针对不同类型的文件,需要采用不同的识别方式。因此,在本实施方式中,在对所述待识别文件进行版本识别之前,可以确定所述待识别文件的类型。

在本实施方式中,所述待识别文件可以具备文件名,所述文件名中可以包括主文件名和扩展名。所述主文件名可以代表所述待识别文件的名称,该主文件名可以是创建所述待识别文件时按照预设模板生成的,也可以是用户进行编辑的。所述扩展名则代表所述待识别文件的类型,一般来说,一旦扩展名改变,所述待识别文件的类型就会改变。在本实施方式中,可以根据所述扩展名来确定所述待识别文件的类型。

在本实施方式中,可以提取所述待识别文件的扩展名,并根据提取的所述扩展名确定所述待识别文件的类型。具体地,可以依次辨别所述待识别文件的文件名中的各个字符,当辨别出的字符为预设字符时,将所述预设字符后的字符串确定为所述待识别文件的扩展名。所述预设字符可以为主文件名和扩展名之间的分隔符“.”。这样,在提取出所述待识别文件的扩展名之后,所述扩展名代表的类型便可以是所述待识别文件的类型。

在本实施方式中,所述待识别文件的类型可以包括maya文本格式文件、maya二进制格式文件和3dsmax格式文件中的一种。

步骤S3:确定与所述待识别文件的类型相匹配的识别规则,并根据所述识别规则,识别出所述待识别文件的版本信息。

在本实施方式中,根据不同的类型,可以采用不同的识别规则来对所述待识别文件进行识别。具体地,所述不同的识别规则与待识别文件的类型之间可以通过键值对(key-value)的形式进行存储。其中,所述待识别文件的类型可以作为键(key),与所述待识别文件的类型相匹配的识别规则可以作为值(value),这样便可以形成(类型,识别规则)这样的键值对。在本实施方式中,在所述键值对中存储的可以是所述识别规则本身,也可以是所述识别规则的存储路径。

在本实施方式中,在确定得到所述待识别文件的类型时候,可以查询包含所述待识别文件的类型的键值对。接着,可以将查询得到的所述键值对中的识别规则提取出来,以根据所述识别规则对所述待识别文件进行版本识别。

在本实施方式中,所述待识别文件中可以按照预设格式记录各种参数。所述参数例如可以包括文件的编码方式、名称、最后修改日期、需求版本号等。这样,可以通过预设接口函数从所述待识别文件中读取关键字信息,并从所述关键字信息中提取版本信息。

在本实施方式中,所述预设接口函数例如可以是GetSceneVersion函数,该函数可以读取待识别文件的内容,并从所述待识别文件的内容中读取包含待识别文件的需求版本号信息的关键字信息。具体地,当所述待识别文件的类型为maya文本格式时,可以读取包含requires maya字符信息的关键字信息。该关键字信息例如可以为requires maya“2009”。其中的2009则可以表示所述待识别文件需求的版本号。这样,便可以从所述关键字信息中提取所述待识别文件的版本信息。

此外,当所述待识别文件的类型为maya二进制格式时,可以读取包含UVER字符信息的关键字信息。所述包含UVER字符信息的关键字信息中同样可以含有所述待识别文字的版本信息,从而可以从所述关键字信息中提取版本信息。

在本实施方式中,当所述待识别文件的类型为3dsmax格式文件时,由于3dsmax格式文件为压缩文件,因此首先需要对所述待识别文件进行解压缩。解压缩后得到的文件从而可以被GetSceneVersion函数读取。这样,可以从解压缩后的文件中读取包含3dsMaxVersion字符信息的关键字信息。所述包含3dsMaxVersion字符信息的关键字信息中可以含有所述待识别文字的版本信息,所述版本信息可以处于3dsMaxVersion字符之后,从而可以从所述关键字信息中提取版本信息。

在本实施方式中,从所述关键字信息中提取版本信息的方式可以包括:从所述关键字信息中识别特征字符,并将所述特征字符之后的字符串作为版本信息。具体地,所述特征字符可以是上述的requires maya、UVER以及3dsMaxVersion字符。在所述特征字符之后往往可以跟随表明版本信息的字符串。例如requires maya“2009”中,requires maya可以为所述特征字符,在requires maya之后的2009便可以为所述待识别文件的版本信息。

在本实施方式中,在从所述关键字信息中识别出特征字符之后,便可以将所述特征字符之后的字符串作为所述待识别文件的版本信息。具体地,可以从所述特征字符的下一位字符开始读取,一直读取到所述关键字信息的末尾,从而可以将所述特征字符之后的字符串读取出来,并可以将读取的内容作为所述待识别文件的版本信息。

在本实施方式中,在从所述待识别文件中识别出版本信息之后,便可以根据所述版本信息,选用相匹配的渲染软件对所述待识别文件进行场景分析。具体地,在本实施方式中,可以利用预先加载的Local Render插件来调用与识别出的版本信息相匹配的渲染软件,并利用所述渲染软件对所述待识别文件进行场景分析。其中,与识别出的版本信息相匹配可以指调用的渲染插件的版本与识别出的版本信息相一致。

由上可见,在本实施方式中,并不需要先通过渲染软件将所述待识别文件打开,而是可以直接通过预设接口函数读取所述待识别文件的内容,从而节省了打开所述待识别文件所需的时间和所占用的资源。

本申请实施方式还提供一种文件版本的识别客户端。请参阅图2,所述客户端可以包括:

文件检测单元100,用于基于预先加载的渲染插件检测当前是否有待识别文件输入;

文件类型确定单元200,用于当检测到有待识别文件输入时,确定所述待识别文件的类型;

识别规则确定单元300,用于确定与所述待识别文件的类型相匹配的识别规则;

版本信息识别单元400,用于根据所述识别规则,识别出所述待识别文件的版本信息。

在本申请一个实施方式中,所述文件检测单元100可以包括:

事件检测模块,用于利用预先加载的Local Render插件检测是否发生预设事件,所述预设事件与输入待识别文件的行为相关联。

在本申请一个实施方式中,所述文件类型确定单元200可以包括:

扩展名提取模块,用于提取所述待识别文件的扩展名,并根据提取的所述扩展名确定所述待识别文件的类型。

在本申请一个实施方式中,版本信息识别单元400可以包括:

关键字识别模块,用于利用预设接口函数从所述待识别文件中读取关键字信息,并从所述关键字信息中提取版本信息。

在本申请一个实施方式中,所述关键字识别模块具体包括:

Maya文本识别模块,用于当所述待识别文件的类型为maya文本格式时,读取包含requires maya字符信息的关键字信息;

Maya二进制识别模块,用于当所述待识别文件的类型为maya二进制格式时,读取包含UVER字符信息的关键字信息。

在本申请一个实施方式中,所述客户端还包括:

3dsmax识别模块,用于当所述待识别文件的类型为3dsmax格式文件时,对所述待识别文件进行解压缩,并从解压缩后的文件中读取包含3dsMaxVersion字符信息的关键字信息。

在本申请一个实施方式中,所述客户端还包括:

软件调用单元500,用于在所述版本信息识别单元400识别出所述待识别文件的版本信息之后,利用预先加载的Local Render插件调用与识别出的版本信息相匹配的渲染软件,并利用所述渲染软件对所述待识别文件进行场景分析。

由以上本申请实施方式提供的技术方案可见,本申请避免使用命令行来进行版本识别,而是根据待识别文件的类型确定相匹配的识别规则,并基于匹配出的识别规则识别出所述待识别文件的版本信息。这样,在对所述待识别文件进行识别时,无需依赖计算机中安装的软件,同时也避免了打开待识别文件所耗费的时间和所占用的资源,从而能够提高版本识别的效率。

上面对本申请的各种实施方式的描述以描述的目的提供给本领域技术人员。其不旨在是穷举的、或者不旨在将本发明限制于单个公开的实施方式。如上所述,本申请的各种替代和变化对于上述技术所属领域技术人员而言将是显而易见的。因此,虽然已经具体讨论了一些另选的实施方式,但是其它实施方式将是显而易见的,或者本领域技术人员相对容易得出。本申请旨在包括在此已经讨论过的本发明的所有替代、修改、和变化,以及落在上述申请的精神和范围内的其它实施方式。

本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,对于客户端实施方式而言,由于其基本相似于方法实施方式,所以描述的比较简单,相关之处参见方法实施方式的部分说明即可。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

虽然通过实施方式描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

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