著录项信息
专利名称 | 用于代码编码、解码的方法和装置以及代码编解码系统 |
申请号 | CN201310461839.0 | 申请日期 | 2013-09-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-04-15 | 公开/公告号 | CN104517143A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K19/06 | IPC分类号 | G;0;6;K;1;9;/;0;6;;;G;0;6;K;7;/;1;0查看分类表>
|
申请人 | 阿里巴巴集团控股有限公司 | 申请人地址 | 英属开曼群岛大开曼资本大厦一座四层847号邮箱
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 阿里巴巴集团控股有限公司 | 当前权利人 | 阿里巴巴集团控股有限公司 |
发明人 | 杨扬;袁志俊 |
代理机构 | 北京市清华源律师事务所 | 代理人 | 沈泳;李赞坚 |
摘要
本申请公开了一种用于代码编码的方法和装置、一种用于代码解码的方法和装置,一种代码编码解码系统。其中所述用于代码编码的方法包括:根据待编码代码内容选择编码技术和可选的码制;选择码制,采用所述选择的编码技术和码制对所述待编码代码内容进行编码;根据编码结果生成编码图形或图像并将所述编码图形或图像输出。本申请的方法使得代码在不同设备之间的复制或交换得以简单化,而且步骤简单,准确率高,可以有效提高软件学习和开发的效率。
用于代码编码、解码的方法和装置以及代码编解码系统\n技术领域\n[0001] 本申请涉及编解码技术领域,特别是涉及一种用于代码编码的方法和装置、代码解码的方法和装置,以及一种代码解码系统。\n背景技术\n[0002] 信息的表现形式多种多样,为了方便信息的存储、传输和使用,出现了很多信息编码技术,例如:GB2312汉字信息编码技术、基于点阵或者矢量图的图像编码技术、以及一维条形码和二维条形码(简称二维码)编码技术等。目前应用广泛的二维码技术是用特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的矩形方阵记录数据符号信息的新一代条码技术,具有信息量大,纠错能力强,识读速度快等特点,广泛应用于物流、仓储、移动支付、电子凭证等领域。手机二维码则是二维码技术在手机上的应用。目前,二维码以及其他的编码技术主要都是对信息进行编码,输入信息通常是包含特定含义的字符串,例如:网站的URL、票据信息、公共服务信息等。\n[0003] 另一方面,代码的表现形式单一化,都是以符合某种语法规则的字符串形式显示或者存储,因而代码在不同设备之间的复制、交换等操作也都只能采用常规方法,通常借助网络连接,以文件共享或者邮件传递的方式实现,或者使用USB等存储介质,步骤比较繁琐,而且要依赖网络或者其他存储设备。具体在软件开发领域,有时开发人员在学习或者工作过程中希望能够快速看到代码片段的执行效果,然而代码片段的复制、部署和执行过程却相对复杂,尤其是在移动互联应用程序的开发中尤为明显。例如:传统做手机WebApp开发时,如果需要运行一段代码片段,通常在开发用机上编辑代码片段并复制到完整的代码框架中,然后再通过网络复制到服务器的特定目录下,通过移动终端上的浏览器访问服务器上的WebApp程序,最后在移动终端上查看运行效果。整个过程步骤多、易出错,使得软件学习或者开发效率低下。\n[0004] 如果使用OCR技术直接扫描识别代码,可以简化上述代码的复制过程,但是目前的识别技术准确性很差,无法保证识别后的代码的正确性,同样无法解决软件学习或者开发效率低下的问题。\n发明内容\n[0005] 本申请提供一种用于代码编码的方法和装置,以解决现有代码编码的方法的问题。本申请另外提供一种用于代码编码的方法和装置,代码编码解码系统。\n[0006] 本申请的一种用于代码编码的方法,包括:\n[0007] 根据待编码代码内容选择编码技术和可选的码制;\n[0008] 选择码制,采用所述选择的编码技术和码制对所述待编码代码内容进行编码;\n[0009] 根据编码结果生成编码图形或图像并将所述编码图形或图像输出。\n[0010] 可选的,所述根据待编码代码内容选择编码技术和可选的码制具体包括:\n[0011] 选择能够将代码内容编码结果以图形或图像方式输出的编码技术,以及选择能够支持代码中所包含的全部字符和符号的码制。\n[0012] 可选的,所述编码技术为二维码编码技术。\n[0013] 可选的,所述码制为QRCode、Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code49或Code16K中一种。\n[0014] 可选的,所述选择码制,采用所述选择的编码技术和码制对所述待编码代码内容进行编码包括:\n[0015] 在可选码制中选择一种码制;\n[0016] 用选择的码制对待编码代码进行编码;\n[0017] 判断编码后的代码长度是否小于或等于当前使用码制的最大容量,如果是,编码后的代码即为编码结果,编码结束;\n[0018] 如果否,返回所述在可选码制中选择一种码制的步骤。\n[0019] 可选的,在所述用选择的码制对代码进行编码的步骤之前,对所述待编码代码进行压缩;或者,\n[0020] 在判断编码后的代码长度大于当前使用码制的最大容量,对所述待编码代码进行压缩,并返回至用选择的码制对待编码代码进行编码的步骤。\n[0021] 可选的,所述对所述待编码代码进行压缩包括:\n[0022] 将所述待编码代码内容中的中文内容按UTF-8编码,并将编码分解成1-3个字节,每个字节按ASCII编码成十六进制代码;\n[0023] 对所述编码为十六进制的代码以及待编码内容的其余部分执行压缩处理。\n[0024] 可选的,所述对于每一可选的码制,判断该码制的最大容量是否不小于待编码代码的长度步骤中,\n[0025] 若所有可选编码技术和码制中,若每一可选码制的容量均小于待编码代码的压缩后长度;则不执行对所述待编码代码内容进行编码的步骤,执行如下步骤:\n[0026] 并将所述代码上传至服务器端;\n[0027] 接收服务器端下发的该代码存储的统一资源定位符;\n[0028] 对所述统一资源定位符进行编码。\n[0029] 可选的,所述选择码制,采用所述选择的编码技术和码制对所述待编码代码内容进行编码包括:\n[0030] 在编码生成的编码内容中写入编码对象类别。\n[0031] 可选的,根据编码结果生成的编码图形或图像是二维码图像。\n[0032] 相应的,本申请还提供一种用于代码编码的装置,包括:\n[0033] 选择单元,用于根据待编码代码内容选择编码技术和和可选的码制;\n[0034] 编码单元,用于选择码制并采用所述选择的编码技术和码制对所述待编码代码内容进行编码;\n[0035] 生成及输出单元,用于根据编码结果生成编码图形或图像并将所述编码图形或图像输出。\n[0036] 可选的,所述选择单元,具体用于选择能够将代码内容编码结果以图形或图像方式输出的编码技术,以及选择能够支持代码中所包含的全部字符和符号的码制。\n[0037] 可选的,所述编码单元,具体用于采用二维码编码技术和下述码制中的任意一种码制对所述待编码代码内容进行编码:QRCode、Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code49或Code16K\n[0038] 可选的,所述编码单元包括:\n[0039] 码制选择单元,用于在可选码制中选择一种码制;\n[0040] 编码执行单元,用于用选择的码制对待编码代码进行编码;\n[0041] 判断单元,用于判断编码后的代码长度是否小于或等于当前使用码制的最大容量,如果是,编码后的代码即为编码结果,编码结束。\n[0042] 可选的,所述编码单元还包括:\n[0043] 压缩单元,用于在所述用选择的码制对代码进行编码的步骤之前,对所述待编码代码进行压缩;或者,在判断编码后的代码长度大于当前使用码制的最大容量,对所述待编码代码进行压缩,并返回至用选择的码制对待编码代码进行编码的步骤。\n[0044] 可选的,所述压缩单元包括:\n[0045] 中文处理单元,用于将所述待编码代码内容中的中文内容按UTF-8编码,并将编码分解成1-3个字节,每个字节按ASCII编码成十六进制代码;\n[0046] 压缩执行单元,用于对所述编码为十六进制的代码以及待编码内容的其余部分执行压缩处理。\n[0047] 可选的,所述编码单元包括:\n[0048] 类别写入单元,用于在编码生成的编码内容中写入编码对象类别。\n[0049] 此外,本申请还提供一种用于代码解码的方法,包括:\n[0050] 获取编码图形或图像;\n[0051] 识别编码图形或图像采用的编码技术和码制;\n[0052] 对编码图形或图像进行解析;\n[0053] 对解析后编码对象类型为代码编码的代码进行解码,得到原始代码。\n[0054] 可选的,所述识别编码图形或图像采用的编码技术和码制包括,通过对编码图形或图像进行扫描,辨识编码图形或图像的特定形状或寻像图形,确定采用的编码技术和码制。\n[0055] 可选的,所述对解析后编码对象类型为代码编码的代码进行解码包括:\n[0056] 读取解析后的文字中类型字段;\n[0057] 判断该字段内容代码编码类别还是统一资源定位符编码类别;\n[0058] 若是代码编码类别,则执行对该解析后内容解码的步骤;\n[0059] 若是统一资源定位符编码类别,则通过该统一资源定位符由服务器端获取原始代码。\n[0060] 可选的,还包括:将获取的原始代码注入到预设的执行环境和容器中,并运行原始代码。\n[0061] 可选的,所述预设的执行环境和容器为运行于Web Runtime上的且提供了WebApp运行所需要的运行库的WebApp框架代码集合。\n[0062] 相应的,本申请还提供一种用于代码解码装置,包括:\n[0063] 编码图像获取单元,用于获取编码图形或图像;\n[0064] 码制识别单元,用于识别编码图形或图像采用的编码技术和码制;\n[0065] 解析单元,用于对编码图形或图像进行解析;\n[0066] 解码单元,用于对解析后编码对象类型为代码编码的代码进行解码,得到原始代码。\n[0067] 可选的,所述解码单元包括:\n[0068] 读取单元,用于读取解析后的文字中类型字段;\n[0069] 类型判断单元,用于判断该字段内容代码编码类别还是统一资源定位符编码类别;\n[0070] 图形或图像代码执行单元,用于在编码类别为代码编码时执行对该解析后内容解码的步骤;\n[0071] 原始代码获取单元,用于在编码类别为统一资源定位符编码类别时通过该统一资源定位符由服务器端获取原始代码。\n[0072] 可选的,还包括:\n[0073] 代码注入运行单元,用于将获取的原始代码注入到预设的执行环境和容器中,并运行原始代码。\n[0074] 此外,本申请还提供一种代码编解码系统,包括:根据上述任一项所述的代码编码装置以及任一项所述的代码解码装置。\n[0075] 与现有技术相比,本申请具有以下优点:本申请提供的用于代码编码的方法,对代码本身进行编码,并以编码图形或图像的形式输出,这不但便于在对代码解码时通过图形或图形捕获装置进行捕获后解码,而且使得代码在不同设备之间的复制或交换得以简单化,而且整个过程不需要借助网络资源或其它存储设备,而且步骤简单,准确率高,可以有效提高软件学习和开发的效率。\n附图说明\n[0076] 图1为本申请的用于代码编码的方法的实施例的流程图;\n[0077] 图2为本申请的用于代码编码的装置的实施例的示意图;\n[0078] 图3为本申请的用于代码解码的方法的实施例的流程图;\n[0079] 图4为本申请的用于代码解码的装置的实施例的示意图;\n[0080] 图5为本申请的代码编解码系统的实施例的示意图。\n具体实施方式\n[0081] 在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。\n[0082] 在本申请中,分别提供了一种用于代码编码的方法和装置、用于代码解码的方法和装置,以及一种代码编解码系统。在下面的实施例中逐一进行详细说明。\n[0083] 请参考图1,其为本申请的一种用于代码编码方法的实施例的流程示意图。所述方法包括如下步骤:\n[0084] 步骤101:根据待编码代码内容选择编码技术和可用的码制。\n[0085] 本实施例的方法,对待编码代码的内容进行编码,而并非如现有技术中对代码信息进行编码;此外本实施例的方法编码后用图像或图形进行输出。因而,需要根据带编码代码内容选取适合的编码技术和相应的码制。也就是说,本实施例中,选择采用的编码技术和可选的码制,主要应该满足如下两方面的要求:首先,所选编码技术的编码结果能够以图形或图像方式输出;其次,所选编码技术中的码制能够支持代码中所包含的全部字符和符号。\n[0086] 例如,对于某一段代码,可以选用二维码编码技术。因为二维码编码技术的输出是黑白相间的矩形方阵,二维码编码技术包括QRCode、Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code49或Code16K等多种码制。若待编码内容中包括中文等汉子信息,可选择QRCode码制,因为该码制的8bit字节码模式可以支持代码中包括的全部字符和符号,包括汉字。当然,在其他实施方式中,也可以选择其他编码技术和码制,如一维码编码,并且可以选择多个码制的组合,只要满足上述两个条件即可。\n[0087] 对于所选编码技术和可选码制的设置,可以预先定义在执行代码编码方法的代码中,也可以采用图形化的用户界面或者带有按钮的控制面板,提示用户作出选择,或者采用其他方式,在此不作限定。\n[0088] 步骤102,选择码制,采用所述选择的编码技术和码制对所述待编码代码内容进行编码;\n[0089] 在选择编码技术后,还需要选择某一码制对待编码代码进行编码。在选择码制时,需要考虑的问题之一该码制最大容量是否能够容纳待编码代码内容。具体而言,首先,在可选码制中选择一种码制;用选择的码制对待编码代码进行编码;接着,判断编码后的代码长度是否小于或等于当前使用码制的最大容量,如果是,编码后的代码即为编码结果,编码结束;如果否,则在所述可选码制中继续选择一种未采用的码制对代码进行编码,并继续对编码后的代码与相应码制容量进行比对,直至选取到可用的码制对待编码代码进行编码为止。\n[0090] 若在判断某一码制的最大容量小于待编码代码的长度后,还可以对所述待编码代码进行压缩,并再次判断该码制的最大容量是否不小于待编码代码的长度。其中,所述的压缩是为了使原始代码字节数尽可能小,以满足相应码制对代码长度或容量的要求。因为任何的码制都是相应的容量限制的,超过了该容量,则无法采用该码制。就需要退回到统一资源定位符(URL)远程获取访问代码方式了。所以压缩是为了容纳更多的代码。压缩方式有很多,比如较流行的LZ及系列变种(Deflate,LZW,LZR,LZX)压缩算法等等。压缩算法可用一些比较常见的压缩算法即可。\n[0091] 例如,对于一段包含中文的代码,可选的二维码编码技术,码制选择上述列举的码制。例如,选择QRCode码制进行编码。首先读取要进行编码的代码,然后进行预处理,将其中的汉字按照UTF-8编码,并将编码分解成1-3个字节,每个字节按ASCII编码成十六进制,再加“%”(类似JavaScript中encodeURIComponent()的处理),然后将处理过的内容编码成8位ASCII码。\n[0092] 获取代码长度,判断编码后的代码长度是否小于或等于当前选择的码制的最大容量。每种码制能够容纳的最大字符数或者字节数是不一样的,例如:QRCode码制的8bit字节模式可以容纳2953字节,Data Matrix码制可以容纳1556字节数据。如果编码后的代码长度超出了所选码制的最大容量,那么就无法生成正确的编码图形或图像,或者生成的编码图形或图像包含的代码信息不完整。因此要检查编码后的代码长度是否小于等于所选码制的最大容量,如果是,则标记为可用码制;如果否,将当前使用的码制标识为不可使用,然后重复本步骤,尝试使用其他码制进行编码并判断。\n[0093] 对于比较长的代码,可能会出现编码后的代码长度大于所选码制最大容量的情况,除了可以选择其他未使用过的码制进行编码之外,还可以选择对代码进行压缩处理。在进行代码编码之前,或者判断出编码后的代码长度大于当前使用码制的最大容量时,可以对代码进行压缩处理,本申请对于具体采用的压缩方法不作限定,只要保证是针对代码的无损压缩,并且达到缩短代码长度的目的就可以了。\n[0094] 若所有可选编码技术和码制中,若每一可选码制的容量均小于编码后代码;则将所述代码上传至服务器端;接收服务器端下发的记录访问该代码资源的统一资源定位符(URL);对所述统一资源定位符进行编码。\n[0095] 选取合适的编码方法和码制对代码内容编码之后,获得编码后的代码,或者果采用的上传代码到服务端获取URL对URL进行编码。也就是说,所述编码结果可能是编码后的代码,或者是可以访问并读取代码的URL,在编码时在在编码生成的编码内容中可写入编码对象类别,该信息用于标识编码数据是代码还是URL,以便于对代码解码的时候进行区分。\n[0096] 步骤103:根据编码结果生成编码图形或图像并将所述编码图形或图像输出。\n[0097] 本实施例上述步骤采用的是二维码技术,根据编码结果生成的编码图形或图像是二维码图像。该生成过程可以通过调用开放的生成二维码的API函数来实现,例如ZXing类库提供的MultiFormatWriter类的encode()函数,或者使用其他实现相同功能的API函数。\n[0098] 如果在上述步骤中选择的是其他编码技术或码制,也可以调用相应的接口函数,或者按照所选编码技术和码制的标准与规范,执行码字序列分块、生成纠错码、构造码字模块、布置码字模块、掩模等类似步骤来生成对应的编码图形或图像。\n[0099] 本实施例将生成的二维码图像在显示器上显示输出。在其他实施方式中,也可以将编码图形或图像输出在其他显示设备或者纸质介质上,或者采用其他图形化的方式输出。\n[0100] 在上述的实施例中,提供了一种用于代码编码的方法,与之相对应的,本申请还提供一种用于代码编码的装置。请参看图2,其为本申请一种用于代码编码的装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。\n[0101] 本实施例的一种用于代码编码的装置,包括:选择单元201,用于根据待编码代码内容选择编码技术和和可选的码制;编码单元202,用于选择码制并采用所述选择的编码技术和码制对所述待编码代码内容进行编码;生成及输出单元203,用于根据编码结果生成编码图形或图像并将所述编码图形或图像输出。\n[0102] 可选的,所述选择单元,具体用于选择能够将代码内容编码结果以图形或图像方式输出的编码技术,以及选择能够支持代码中所包含的全部字符和符号的码制。\n[0103] 可选的,所述编码单元,具体用于采用二维码编码技术和下述码制中的任意一种码制对所述待编码代码内容进行编码:QRCode、Data Matrix、Maxi Code、Aztec、QR Code、Vericode、PDF417、Ultracode、Code49或Code16K\n[0104] 可选的,所述编码单元包括:码制选择单元,用于在可选码制中选择一种码制;编码执行单元,用于用选择的码制对待编码代码进行编码;判断单元,用于判断编码后的代码长度是否小于或等于当前使用码制的最大容量,如果是,编码后的代码即为编码结果,编码结束。\n[0105] 可选的,所述编码单元还包括:压缩单元,用于在所述用选择的码制对代码进行编码的步骤之前,对所述待编码代码进行压缩;或者,在判断编码后的代码长度大于当前使用码制的最大容量,对所述待编码代码进行压缩,并返回至用选择的码制对待编码代码进行编码的步骤。\n[0106] 可选的,所述压缩单元包括:中文处理单元,用于将所述待编码代码内容中的中文内容按UTF-8编码,并将编码分解成1-3个字节,每个字节按ASCII编码成十六进制代码;压缩执行单元,用于对所述编码为十六进制的代码以及待编码内容的其余部分执行压缩处理。\n[0107] 可选的,所述编码单元包括:类别写入单元,用于在编码生成的编码内容中写入编码对象类别。\n[0108] 与上述的用于代码编码的方法相对应的,本申请还提供一种用于代码解码的方法。请参考图3,其为本申请提供的一种用于代码解码方法的实施例的流程示意图,所述方法包括:\n[0109] 步骤301,获取编码图形或图像。\n[0110] 对于采用图形化方式输出的待解码的编码图形或图像,使用带有摄像装置或者光电扫描装置的设备,获取所述编码图形或图像。例如,可以使用带有摄像头的移动终端对待解码的编码图形或图像进行拍照。也可以将显示与屏幕上图像直接导入图像识别的应用程序中,以获取图像或图形的信息。\n[0111] 步骤302,识别编码图形或图像采用的编码技术和码制。\n[0112] 在对编码图形或图像进行解析和解码之前,首先要识别采用的编码技术和码制。\n根据编码图形或图像可能采用的各种编码技术和码制规则,逐一扫描编码图像或图像中的寻像图形或者其他具备类似功能的图形,根据寻像图形或者其他具备类似功能的图形的搜索结果,确定采用的编码技术和码制。\n[0113] 例如,在本实施例中采用的是二维码编码技术和QRCode码制,寻像图形包括三个位置相同的位置探测图形,分别位于二维码图像的左上、右上、左下,并且其模块宽度比为\n1:1:3:1:1,通过在整幅二维码图像中搜索到符合要求的QRCode码制的寻像图形,从而确定采用的是二维码技术和QRCode码制。\n[0114] 步骤303,对编码图形或图像进行解析。\n[0115] 识别出采用的编码技术和码制后,就可以对编码图形或图像进行解析。解析的目的,就是获取编码图形或图像中的数据内容,作为下一步进行解码的基础。在本实施例中采用的是QRCode码制,解析过程就是读取二维码图像中的编码区域中的数据。具体在实施过程中,可以调用开放的二维码解析的API函数,例如ZXing类库提供的MultiFormatReader类的decode()函数,或者使用其他实现相同功能的API函数。\n[0116] 步骤304,对解析后编码对象类型为代码编码的代码进行解码,得到原始代码。\n[0117] 对于上述对代码内容编码后形成的编码图形或图形,对编码图形或图像进行解析后,采用相应的解码方法进行解码即可获得原始的代码。具体而言,对编码图形或图像的数据内容进行解码,是代码编码过程的逆过程。例如,上述采用8位ASCII方式编码,首先将数据内容恢复成进行8位ASCII编码之前的码流,然后识别码流中是否包含汉字,如果有汉字,就按照UTF-8进行解码(类似于JavaScript中的decodeURIComponenet()函数的处理过程),得到原始代码。解码完毕,判断解码后的代码是否包含数据压缩信息,如果包含数据压缩信息,采用与编码时所用压缩算法相对应的解压缩算法,对解码后的代码进行解压缩处理,得到原始代码。\n[0118] 此外,编码图形或图形有可能为URL编码的情形,对编码图形或图像进行解析后,判断是否包含类别信息并识别类别,如果不包含类别信息,或者类别是代码,那么就对编码图形或图像的数据内容进行解码,还原原始代码;如果若包含,则读取在编码时在在编码生成的编码内容中可写入编码对象类别。对包含的类别信息是URL的情形,说明编码图形或图像的数据内容是URL,则读取URL,并访问URL存放的代码,获得原始代码。\n[0119] 上述的用于代码编码和代码解码的方法,可大大提高编码和解码的效率,而且摆脱了代码传递过程中对联网要求的限制。\n[0120] 对于一些需要调试运行的代码,为了便于看到原始代码的运行效果,还可以将通过上述对代码进行编码和解码;将获取的原始代码很方便的注入到执行环境和容器中,并运行原始代码。具体而言,传统做手机WebApp开发时,如果需要运行一段示例代码,需要将这段代码拷贝到一个完整代码框架中,然后再整体部署到WebOS上运行或通过手机上的浏览器访问和运行服务器上WebApp。整个过程繁琐且容易出错,有时只是为了学习一下代码,看一下效果,却要进行许多步骤才能完成看到运行效果。通过上述的方法,可直接将WebApp的示例代码进行编码为二维码图片,然后通过手机摄像头扫描到手机上,并在手机上用上述的方法进行解码。进一步的,可利用WebApp代码本身所具有的可动态执行的特点,将代码放入在手机上预先安装的执行环境和容器中,从而使代码正常运行。\n[0121] 所述执行环境和容器是预先设置好的一种运行于Web Runtime上的特殊的WebApp代码框架,里面加载和引用了代码需要的各种库。例如,针对解码得到的一段WebApp代码,预先设置好的执行环境和容器就是一个最基本的HTML/JavaScript/CSS代码框架,里面加载了代码执行所需的各种库,将解码后的WebApp代码注入所述代码框架中,利用WebApp代码本身所具有的可动态执行的特点,就可以直接运行代码,看到运行结果。\n[0122] 由于提供了这些运行库,加之WebApp代码本身具有可动态执行的特点,一段WebApp代码可以基于这些库的能力直接在Web Runtime上运行,而不需要任何编译过程。比如:一段WebApp代码这样写的:\n[0123] $(“#result”).text(“hello world”);\n[0124] 可以看出上述代码引用了jQuery库,因为用到了$这个jQuery库特有的函数。而本身这个WebApp代码在其他普通的执行环境和容器中如果没有jQuery库是无法正常执行的,也就是说这时如果没有WebApp框架代码的支持,这段代码就无法运行。本身的所述方案的执行环境和容器其本身内置了多种HTML模板和多种WebApp常用的库或框架,并且可以自动加载。\n[0125] 此外,该Web Runtime还提供了一种代码中引用库的检测和安装机制,当第一次执行发现引用的$函数不存在时,Web Runtime会自动从网上下载并安装这些库,并在执行环境和容器中自动加入这些引用。这样,这段WebApp代码就可以在这种执行环境和容器中顺利的透明的执行。\n[0126] 在上述的实施例中,提供了一种用于代码解码的方法,与之相对应的,本申请还提供一种用于代码解码的装置。请参看图4,其为本申请一种用于代码解码的装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。\n[0127] 本实施例的一种用于代码解码装置,包括:编码图像获取单元401,用于获取编码图形或图像;码制识别单元402,用于识别编码图形或图像采用的编码技术和码制;解析单元403,用于对编码图形或图像进行解析;解码单元404,用于对解析后编码对象类型为代码编码的代码进行解码,得到原始代码。\n[0128] 可选的,所述解码单元包括:读取单元,用于读取解析后的文字中类型字段;类型判断单元,用于判断该字段内容代码编码类别还是统一资源定位符编码类别;图形或图像代码执行单元,用于在编码类别为代码编码时执行对该解析后内容解码的步骤;原始代码获取单元,用于在编码类别为统一资源定位符编码类别时通过该统一资源定位符由服务器端获取原始代码。\n[0129] 可选的,还包括:代码注入运行单元,用于将获取的原始代码注入到预设的执行环境和容器中,并运行原始代码。\n[0130] 本申请实施例还提供了一种代码编解码系统,如图5所示,该系统包括上述实施例所述的代码编码装置501和代码解码装置502。所述代码编码装置和代码解码装置,可以布置于计算机,也可以布置于移动终端,但并不局限于这两种设备,可以是能够实现上述代码编码方法或代码解码方法的任何设备。例如,代码编码装置布置于计算机上,能够读取代码并执行代码编码方法并以图形或图像的形式输出在显示器上,代码解码装置布置于带有摄像头的移动终端上,使用摄像头对计算机显示器上的编码图形或图像进行拍照,并执行代码解码方法,就可以在移动终端上还原出原始代码。如果原始代码具有可动态执行的特点,例如WebApp代码,并且移动终端已经预置了执行环境和容器,那么就可以快捷地看到原始代码的运行效果。\n[0131] 本申请实施例提供的代码编解码方法、装置和系统,可以快速实现代码在不同设备之间的复制和交换,整个过程不需要借助网络资源或其它存储设备,而且步骤简单,准确性高,从而可以有效提高软件学习和开发的效率。\n[0132] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。\n[0133] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。\n[0134] 1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。\n[0135] 2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。\n[0136] 本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
法律信息
- 2018-04-20
- 2015-05-13
实质审查的生效
IPC(主分类): G06K 19/06
专利申请号: 201310461839.0
申请日: 2013.09.30
- 2015-04-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-05-02
|
2011-10-25
| | |
2
| |
2010-02-03
|
2008-07-30
| | |
3
| |
2011-04-27
|
2009-09-28
| | |
4
| |
2011-04-06
|
2010-11-08
| | |
5
| |
2013-01-16
|
2012-10-19
| | |
6
| |
2009-07-29
|
2009-02-27
| | |
7
| |
2013-03-20
|
2012-11-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |