著录项信息
专利名称 | 一种图片数据的上传方法和浏览器 |
申请号 | CN201310684188.1 | 申请日期 | 2013-12-13 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-04-30 | 公开/公告号 | CN103761241A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F16/957 | IPC分类号 | G;0;6;F;1;6;/;9;5;7查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号D座112室(德胜园区)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 张爽;何奋 |
代理机构 | 北京工信联合知识产权代理有限公司 | 代理人 | 黄晓军 |
摘要
本发明公开一种图片数据的上传方法和浏览器,属于互联网技术领域。所述图片数据的上传方法包括浏览器检测到当前网页中有图片上传操作;获取图片上传操作中所选取的图片的图片信息;依据所述图片信息,浏览器启动图片处理器对所选取的图片进行预处理,生成处理结果图片;浏览器依据所述处理结果图片进行所述的图片上传操作。根据本发明,能够使得无论网站是否提供有图片处理功能,都可以通过浏览器进行图片的预先处理。
1.一种图片数据的上传方法,包括:
浏览器检测到当前网页中有图片上传操作;
获取图片上传操作中所选取的图片的图片信息;其中,所述图片信息包括图片的文 件名和文件路径;
依据所述图片信息,浏览器启动图片处理器对所选取的图片进行预处理,生成处理结果图片,包括:
启动图片处理器,并将所述文件名和所述文件路径传给所述图片处理器;
图片处理器调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理;
其中,文件处理线程和用户界面线程对所选取的图片进行预处理的步骤包括:文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;
用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;
文件处理线程根据所述处理类型信息对图片对象进行预处理;
用户界面线程在图片处理器窗口中展示预处理后的图片对象;
浏览器依据所述处理结果图片进行所述的图片上传操作;
其中,浏览器检测到当前网页中有图片上传操作的步骤包括:
浏览器加载网页时,在网页的页面进程中注入进程钩子;
通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。
2.如权利要求1所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤包括:
将对所述系统API的调用重定向到自定义函数;
获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。
3.如权利要求1所述的上传方法,其中,浏览器依据所述处理结果图片进行所述的图片上传操作的步骤包括:
用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发;
图片处理线程将处理后的图片对象存储为处理结果图片;
图片处理线程将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。
4.如权利要求1所述的上传方法,其中,所述图片处理器为浏览器的图片处理组件或者第三方的图片处理器。
5.如权利要求1所述的上传方法,其中,还包括:
浏览器将所述处理结果图片发送到移动终端。
6.如权利要求1所述的上传方法,其中,还包括:
浏览器将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。
7.如权利要求1所述的上传方法,其中,还包括:
浏览器将图片的预处理日志进行保存。
8.如权利要求1所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤中,所选取的图片来自浏览器的图片收集插件中的图片资源。
9.如权利要求1所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。
10.一种浏览器,包括:
检测模块,适于检测到当前网页中有图片上传操作;
获取模块,适于获取图片上传操作中所选取的图片的图片信息;其中所述图片信息包括图片的文件名和文件路径;
预处理模块,适于依据所述图片信息,启动图片处理器对所选取的图片进行预处理,生成处理结果图片;所述预处理模块包括启动子模块和调用子模块,其中:
启动子模块,适于启动图片处理器,并将所述文件名和所述文件路径传给所述图片处理器;
调用子模块,适于调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理;
其中,文件处理线程和用户界面线程对所选取的图片按照如下方式进行预处理包括:
文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;
用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;
文件处理线程根据所述处理类型信息对图片对象进行预处理;
用户界面线程在图片处理器窗口中展示预处理后的图片对象;
上传模块,适于依据所述处理结果图片进行所述的图片上传操作;
其中,所述检测模块包括:
注入子模块,适于当浏览器加载网页时,在网页的页面进程中注入进程钩子;
截获子模块,适于通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。
11.如权利要求10所述的浏览器,其中,所述获取模块包括:
重定向子模块,适于将对所述系统API的调用重定向到自定义函数;
获取子模块,适于获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。
12.如权利要求10所述的浏览器,其中,所述上传模块进一步适于:
通过用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发;
通过图片处理线程将处理后的图片对象存储为处理结果图片;
通过图片处理线程将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。
13.如权利要求10所述的浏览器,其中,所述图片处理器为浏览器的图片处理组件或者第三方的图片处理器。
14.如权利要求10所述的浏览器,其中,还包括:
第一发送模块,适于将所述处理结果图片发送到移动终端。
15.如权利要求10所述的浏览器,其中,还包括:
第二发送模块,适于将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。
16.如权利要求10所述的浏览器,其中,还包括:
保存模块,适于将图片的预处理日志进行保存。
17.如权利要求10所述的浏览器,其中,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的图片收集插件中的图片资源。
18.如权利要求10所述的浏览器,其中,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。
一种图片数据的上传方法和浏览器\n技术领域\n[0001] 本发明涉及互联网技术领域,具体涉及一种图片数据的上传方法和浏览器。\n背景技术\n[0002] 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL指定,文件格式通常为HTML,并由MIME在HTTP协议中指明。一个网页中可以包括多个文档,每个文档都是分别从服务器获取的。大部分的浏览器本身支持除了HTML之外的广泛的格式,例如JPEG、PNG、GIF等图片格式,并且能够扩展支持众多的插件(plug-ins)。个人电脑上常见的网页浏览器包括微软的Internet Explorer、Mozilla的Firefox、Google的Chrome和360安全浏览器等。\n[0003] 在使用浏览器时经常要进行各种文件例如图片文件的上传操作。如图1所示,使用浏览器进行图片的上传时,一般是在启动系统自带的文件选择对话框后,在弹出的文件选择对话框中选择图片文件的文件名和文件路径,然后将选中的图片文件上传到网页服务器中。\n[0004] 在进行图片上传时,存在对图片进行美化操作的需求。现有的一种实现方案是,在进行网页开发时,在网页中嵌入JS脚本,通过执行所述JS脚本,将图片上传到网页服务器并由网页服务器来对图片进行美化操作。而对于很多网站,其设计的网页往往没有此功能,使得用户丧失了进行图片上传时对图片处理的机会。\n发明内容\n[0005] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的图片数据的上传方法和浏览器。\n[0006] 根据本发明的一个方面,提供了一种图片数据的上传方法,包括:\n[0007] 浏览器检测到当前网页中有图片上传操作;\n[0008] 获取图片上传操作中所选取的图片的图片信息;\n[0009] 依据所述图片信息,浏览器启动图片处理器对所选取的图片进行预处理,生成处理结果图片;\n[0010] 浏览器依据所述处理结果图片进行所述的图片上传操作。\n[0011] 可选地,浏览器检测到当前网页中有图片上传操作的步骤包括:\n[0012] 浏览器加载网页时,在网页的页面进程中注入进程钩子;\n[0013] 通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。\n[0014] 可选地,获取图片上传操作中所选取的图片的图片信息的步骤包括:\n[0015] 将对所述系统API的调用重定向到自定义函数;\n[0016] 获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。\n[0017] 可选地,浏览器启动图片处理器对所选取的图片进行预处理的步骤包括:\n[0018] 启动图片处理器,并将所述文件名和文件路径传给所述图片处理器;\n[0019] 图片处理器调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理。\n[0020] 可选地,文件处理线程和用户界面线程对所选取的图片进行预处理的步骤包括:\n[0021] 文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;\n[0022] 用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;\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] 可选地,所选取的图片来自浏览器的收藏夹的网页中的图片资源。\n[0038] 根据本发明的另一个方面,提供了一种浏览器,包括:\n[0039] 检测模块,适于检测到当前网页中有图片上传操作;\n[0040] 获取模块,适于获取图片上传操作中所选取的图片的图片信息;\n[0041] 预处理模块,适于依据所述图片信息,启动图片处理器对所选取的图片进行预处理,生成处理结果图片;\n[0042] 上传模块,适于依据所述处理结果图片进行所述的图片上传操作。\n[0043] 可选地,所述检测模块包括:\n[0044] 注入子模块,适于当浏览器加载网页时,在网页的页面进程中注入进程钩子;\n[0045] 截获子模块,适于通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。\n[0046] 可选地,所述获取模块包括:\n[0047] 重定向子模块,适于将对所述系统API的调用重定向到自定义函数;\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] 可选地,所述图片处理器为浏览器的图片处理组件或者第三方的图片处理器。\n[0062] 可选地,所述浏览器还包括:\n[0063] 第一发送模块,适于将所述处理结果图片发送到移动终端。\n[0064] 可选地,所述浏览器还包括:\n[0065] 第二发送模块,适于将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。\n[0066] 可选地,所述浏览器还包括:\n[0067] 保存模块,适于将图片的预处理日志进行保存。\n[0068] 可选地,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的图片收集插件中的图片资源。\n[0069] 可选地,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。\n[0070] 根据本发明上述的一个或多个技术方案,通过在浏览器中集成对于经浏览器上传的图片的预处理功能,使得无论网站是否提供有图片处理功能,都可以通过浏览器进行图片的预先处理。\n[0071] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。\n附图说明\n[0072] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:\n[0073] 图1示出了网页中弹出文件选择对话框的屏幕截图;\n[0074] 图2示出了根据本发明一个实施例的图片数据的上传方法流程图;\n[0075] 图3示出了本发明实施例中图片处理器窗口的屏幕截图;\n[0076] 图4示出了根据本发明一个实施例的浏览器的结构示意图;\n[0077] 图5示出了图4所示的浏览器中检测模块的结构示意图;\n[0078] 图6示出了图4所示的浏览器中获取模块的结构示意图;\n[0079] 图7示出了图4所示的浏览器中预处理模块的结构示意图。\n具体实施方式\n[0080] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。\n[0081] 图2示出了根据本发明一个实施例的图片数据的上传方法流程图,所述上传方法适用于浏览器中,参照图2,所述上传方法可以包括:\n[0082] 步骤202,浏览器检测到当前网页中有图片上传操作;\n[0083] 浏览器加载网页时,浏览器的主进程会为当前网页创建一个页面进程,可以在网页的页面进程中注入进程钩子,通过所述进程钩子来截获(拦截)页面进程对系统API的调用。其中,所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,可以确定当前网页中有图片上传操作。\n[0084] 如图1所示,用户打开一个网页后,在网页中点击“上传图片”命令框,则网页进程会调用产生文件选择对话框的系统API,此时,所述进程钩子会截获到页面进程对所述系统API的调用。\n[0085] 步骤204,获取图片上传操作中所选取的图片的图片信息;\n[0086] 进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,可以将对所述系统API的调用重定向到自定义函数。通过执行所述自定函数,可以在网页中弹出文件选择对话框。具体实现时,可以在所述自定义函数中设置产生文件选择对话框的代码,也可以在所述自定义函数中设置调用产生文件选择对话框的系统API的代码。用户根据弹出的文件选择对话框选择图片文件后,所述自定义函数可以获取到用户在文件选择对话框中确定的所选取的图片的图片信息,例如图片的文件名和文件路径。\n[0087] 如图1所示,在弹出的文件选择对话框中,用户可以在“查找范围”列表框中选择图片的文件名和文件路径,在选择完成后,点击“打开”命令框,则所述自定义函数可以获取到用户选择的文件名和文件路径。\n[0088] 步骤206,依据所述图片信息,浏览器启动图片处理器对所选取的图片进行预处理,生成处理结果图片;\n[0089] 在获取到图片上传操作中所选取的图片的图片信息后,浏览器启动图片处理器,并将所述文件名和文件路径传给所述图片处理器,图片处理器就可以根据所述图片信息对选取的图片文件进行预处理。\n[0090] 如图3所示,图片处理器启动后,会在网页中弹出图片处理器窗口,用户可以在所述图片处理器窗口中选择对图片的处理类型,例如,所述处理类型为“美容”、“复古”、“黑白”和“经典”等,另外,还可以包括一些常用的“旋转”和“翻转”操作。用户可以点击其中的某一种处理类型,图片处理器则会获取与点击的处理类型对应的相关信息,并根据这些信息对图片进行预处理。具体地,可以在图片处理器的图像处理库中配置与处理类型对应的相关信息,例如饱和度、亮度、对比度等等来达到不同的处理效果。如果要添加新的处理类型,只要提供相应的配置数据即可。\n[0091] 其中,所述图片处理器可以为浏览器的图片处理组件或者第三方的图片处理器,所述第三方的图片处理器例如为“美图秀秀”和“iSee”等等。当所述图片处理器为浏览器的图片处理组件时,浏览器可以加载该图片处理组件并对所选取的图片进行渲染处理。\n[0092] 步骤208,浏览器依据所述处理结果图片进行所述的图片上传操作。\n[0093] 图片处理器生成处理结果图片后,可以将处理结果图片的图片信息例如文件名和文件路径发送回原网页的上传进程,由所述上传进程继续进行图片的上传,即将处理结果图片上传到网站服务器。\n[0094] 可见,根据本发明实施例的上述技术方案,通过在浏览器中集成对于经浏览器上传的图片的预处理功能,使得无论网站是否提供了图片处理功能,都可以通过浏览器进行图片的预先处理。\n[0095] 需要说明的是,在上述步骤204,图片上传操作中所选取的图片除了可以是本地图片之外,也可以来源于其他图片资源。例如,所选取的图片来自浏览器的图片收集插件中的图片资源。浏览器的图片收集插件中保存有由浏览器用户收集的图片,用户可以从中进行图片的选择后确定哪一个是要进行预处理的。又例如,所选取的图片来自浏览器的收藏夹的网页中的图片资源。浏览器的收藏夹中保存有用户浏览网页后收藏的网页的网址,用户可以打开收藏夹中的网页,从打开的网页中选择图片进行预处理。\n[0096] 可选地,在上述步骤206中,图片处理器可以调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理,具体执行过程可以为:\n[0097] 首先,文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象,并发送消息到用户界面线程:\n[0098] 其次,用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;\n[0099] 然后,文件处理线程根据所述处理类型信息对图片对象进行预处理;\n[0100] 最后,用户界面线程在图片处理器窗口中展示预处理后的图片对象。\n[0101] 相应地,在上述步骤208中,当用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发(例如,用户点击图3中的“下一步”命令框)时,图片处理线程将处理后的图片对象存储为处理结果图片,并将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。\n[0102] 根据本发明实施例的上述图片数据的上传方法,浏览器对图片进行预处理得到处理结果图片后,除了将所述处理结果图片上传到网站服务器之外,根据不同的需求,还可以对所述处理结果图片做其他的各种处理。\n[0103] 在一种实现方式中,浏览器可以将所述处理结果图片发送到移动终端。例如,可以将所述处理结果图片在上传到网站服务器的同时,经过浏览器的手机传输接口(usb)发送到手机侧。\n[0104] 在另一种实现方式中,还可以将所述处理结果图片同步地上传到云端服务器,并生成对应的二维码图片,以便手机等装置进行识别后,根据识别结果来获取所述处理结果图片。\n[0105] 在又一种实现方式中,浏览器还可以将图片的预处理日志进行保存,以便用户进行查看。其中,所述预处理日志可以包括:处理后的图片的保存位置(url)、处理时间、处理该图片的用户等等。\n[0106] 以下给出本发明实施例的图片数据的上传方法的一个应用实例。\n[0107] 用户在浏览器中打开一个网页,需要上传一个图片文件时,首先要打开文件选择对话框选择需要上传的图片文件。在Windows操作系统平台下,显示文件选择对话框,要调用系统API“WINCOMMDLGAPI BOOL APIENTRY GetOpenFileName(LPOPENFILENAME)”,其中,LPOPENFILENAME是指向文件选择对话框的结构。通过hook(挂钩)技术可以把浏览器的页面进程中的这个系统调用拦截下来,当用户在文件选择对话框中选择完要上传的文件后,可以得到要上传的文件名和文件路径,还可以通过这个文件名(例如通过文件名后缀)得到文件的属性,这样就可以知道用户要上传的是不是图片。\n[0108] 以下是hook系统API的主要代码:\n[0109]\n[0110]\n[0111] 以上代码的作用是把GetOpenFileNameA(字符编码方式为非UNICODE)和GetOpenFileNameW(字符编码方式为UNICODE)这两个系统函数的地址重定向到HookGetOpenFileNameA(字符编码方式为非UNICODE)和HookGetOpenFileNameW(字符编码方式为UNICODE)。前者是产生文件选择对话框的函数,后者是自定义函数,该自动函数可以通过增加调用系统API的代码或者增加产生文件选择对话框的代码来产生文件选择对话框。\n[0112] 由于上面把产生文件选择对话框的系统API给hook了,所以要打开文件选择对话框的时候,就会调用到重新定向的自定义函数里来。在这个自定义函数里可以很容易拿到被选择文件的文件名和文件路径,如果是图片,则把拿到的文件路径传给图片处理器,图片处理器拿到文件路径,接着就可以加载这个文件,然后把图片展现给用户,而且可以给用户提供对图片进行美化的操作。\n[0113] 拿到文件路径后,图片处理器首先在浏览器主进程的File线程(文件处理线程)加载图片文件,并把文件转换成图片处理器能够识别的图片对象,后面对图片的处理都是针对图片对象。图片对象生成之后,就给主进程的UI线程(用户界面线程)发一个消息,UI线程收到消息,就去取图片对象,然后显示图片处理器窗口,在图片处理器窗口中展现图片,图片处理器启动完成。\n[0114] 图3是图片处理器窗口的屏幕截图。如图3所示,当用户在图片处理器上进行图片美化操作时,UI线程收到消息,然后把操作细节转发给File线程,File线程得到相应的消息后进行相应的处理操作,处理完成后,通知UI线程展现相应的效果。当用户处理完成点击上传图片时,先把图片对象存储为文件,然后把相应的路径通过进程IPC(Inter-Process Communication,进程间通信)通信的方式传给网页中负责上传的进程,发送完路径,文件处理器就把自己给销毁了,后面上传的任务就交给网页进程,这样就完成了图片美化和上传的操作。\n[0115] 本发明实施例还提供一种浏览器。\n[0116] 图4示出了根据本发明一个实施例的浏览器的结构示意图。参照图4,所述浏览器可以包括检测模块42、获取模块44、预处理模块46和上传模块48,其中:\n[0117] 检测模块42适于检测到当前网页中有图片上传操作,获取模块44适于获取图片上传操作中所选取的图片的图片信息,预处理模块46,适于依据所述图片信息,启动图片处理器对所选取的图片进行预处理,生成处理结果图片,上传模块48适于依据所述处理结果图片进行所述的图片上传操作。\n[0118] 其中,所述图片处理器可以为浏览器的图片处理组件或者第三方的图片处理器,所述第三方的图片处理器例如为“美图秀秀”和“iSee”等等。当所述图片处理器为浏览器的图片处理组件时,浏览器可以加载该图片处理组件并对所选取的图片进行渲染处理。\n[0119] 可见,根据本发明实施例的上述技术方案,通过在浏览器中集成对于经浏览器上传的图片的预处理功能,使得无论网站是否提供了图片处理功能,都可以通过浏览器进行图片的预先处理。\n[0120] 在一种实现方式中,所述检测模块42可以包括:\n[0121] 注入子模块52,适于当浏览器加载网页时,在网页的页面进程中注入进程钩子;\n[0122] 截获子模块54,适于通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。\n[0123] 在一种实现方式中,所述获取模块44可以包括:\n[0124] 重定向子模块62,适于将对所述系统API的调用重定向到自定义函数;\n[0125] 获取子模块64,适于获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。\n[0126] 可选地,所述获取模块44获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的图片收集插件中的图片资源。\n[0127] 可选地,所述获取模块44获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。\n[0128] 在一种实现方式中,所述预处理模块46可以包括:\n[0129] 启动子模块72,适于启动图片处理器,并将所述文件名和文件路径传给所述图片处理器;\n[0130] 调用子模块74,适于调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理。\n[0131] 其中,文件处理线程和用户界面线程对所选取的图片可以按照如下方式进行预处理:\n[0132] 文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;\n[0133] 用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;\n[0134] 文件处理线程根据所述处理类型信息对图片对象进行预处理;\n[0135] 用户界面线程在图片处理器窗口中展示预处理后的图片对象。\n[0136] 相应地,所述上传模块48进一步适于:\n[0137] 通过用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发;\n[0138] 通过图片处理线程将处理后的图片对象存储为处理结果图片;\n[0139] 通过图片处理线程将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。\n[0140] 浏览器对图片进行预处理得到处理结果图片后,除了将所述处理结果图片上传到网站服务器之外,根据不同的需求,还可以对所述处理结果图片做其他的各种处理。因此,作为一种实现方式,所述浏览器还包括第一发送模块(图未示),适于将所述处理结果图片发送到移动终端。\n[0141] 作为另一种实现方式,所述浏览器还包括第二发送模块(图未示),适于将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。\n[0142] 作为又一种实现方式,所述浏览器还包括保存模块(图未示),适于将图片的预处理日志进行保存。\n[0143] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。\n各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。\n[0144] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。\n[0145] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。\n[0146] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。\n[0147] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。\n[0148] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。\n[0149] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。\n[0150] 本发明公开了A1、一种图片数据的上传方法,包括:\n[0151] 浏览器检测到当前网页中有图片上传操作;\n[0152] 获取图片上传操作中所选取的图片的图片信息;\n[0153] 依据所述图片信息,浏览器启动图片处理器对所选取的图片进行预处理,生成处理结果图片;\n[0154] 浏览器依据所述处理结果图片进行所述的图片上传操作。\n[0155] A2、如A1所述的上传方法,其中,浏览器检测到当前网页中有图片上传操作的步骤包括:\n[0156] 浏览器加载网页时,在网页的页面进程中注入进程钩子;\n[0157] 通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。\n[0158] A3、如A2所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤包括:\n[0159] 将对所述系统API的调用重定向到自定义函数;\n[0160] 获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。\n[0161] A4、如A3所述的上传方法,其中,浏览器启动图片处理器对所选取的图片进行预处理的步骤包括:\n[0162] 启动图片处理器,并将所述文件名和文件路径传给所述图片处理器;\n[0163] 图片处理器调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理。\n[0164] A5、如A4所述的上传方法,其中,文件处理线程和用户界面线程对所选取的图片进行预处理的步骤包括:\n[0165] 文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;\n[0166] 用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;\n[0167] 文件处理线程根据所述处理类型信息对图片对象进行预处理;\n[0168] 用户界面线程在图片处理器窗口中展示预处理后的图片对象。\n[0169] A6、如A5所述的上传方法,其中,浏览器依据所述处理结果图片进行所述的图片上传操作的步骤包括:\n[0170] 用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发;\n[0171] 图片处理线程将处理后的图片对象存储为处理结果图片;\n[0172] 图片处理线程将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。\n[0173] A7、如A1所述的上传方法,其中,所述图片处理器为浏览器的图片处理组件或者第三方的图片处理器。\n[0174] A8、如A1所述的上传方法,其中,还包括:\n[0175] 浏览器将所述处理结果图片发送到移动终端。\n[0176] A9、如A1所述的上传方法,其中,还包括:\n[0177] 浏览器将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。\n[0178] A10、如A1所述的上传方法,其中,还包括:\n[0179] 浏览器将图片的预处理日志进行保存。\n[0180] A11、如A1所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤中,所选取的图片来自浏览器的图片收集插件中的图片资源。\n[0181] A12、如A1所述的上传方法,其中,获取图片上传操作中所选取的图片的图片信息的步骤中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。\n[0182] 本发明公开了B13、一种浏览器,包括:\n[0183] 检测模块,适于检测到当前网页中有图片上传操作;\n[0184] 获取模块,适于获取图片上传操作中所选取的图片的图片信息;\n[0185] 预处理模块,适于依据所述图片信息,启动图片处理器对所选取的图片进行预处理,生成处理结果图片;\n[0186] 上传模块,适于依据所述处理结果图片进行所述的图片上传操作。\n[0187] B14、如B13所述的浏览器,其中,所述检测模块包括:\n[0188] 注入子模块,适于当浏览器加载网页时,在网页的页面进程中注入进程钩子;\n[0189] 截获子模块,适于通过所述进程钩子截获到页面进程对产生文件选择对话框的系统API的调用时,确定当前网页中有图片上传操作。\n[0190] B15、如B14所述的浏览器,其中,所述获取模块包括:\n[0191] 重定向子模块,适于将对所述系统API的调用重定向到自定义函数;\n[0192] 获取子模块,适于获取根据执行自定义函数弹出的文件选择对话框中确定的所选取的图片的文件名和文件路径。\n[0193] B16、如B15所述的浏览器,其中,所述预处理模块包括:\n[0194] 启动子模块,适于启动图片处理器,并将所述文件名和文件路径传给所述图片处理器;\n[0195] 调用子模块,适于调用浏览器主进程的文件处理线程和用户界面线程,由文件处理线程和用户界面线程对所选取的图片进行预处理。\n[0196] B17、如B16所述的浏览器,其中,文件处理线程和用户界面线程对所选取的图片按照如下方式进行预处理:\n[0197] 文件处理线程依据所述文件名和文件路径加载图片文件,将所述图片文件转换为图片处理器能够识别的图片对象;\n[0198] 用户界面线程显示图片处理器窗口,在所述图片处理器窗口中展现图片对象,并在获取到图片处理器窗口中确定的对图片对象的处理类型时,将处理类型信息发送给所述文件处理线程;\n[0199] 文件处理线程根据所述处理类型信息对图片对象进行预处理;\n[0200] 用户界面线程在图片处理器窗口中展示预处理后的图片对象。\n[0201] B18、如B17所述的浏览器,其中,所述上传模块进一步适于:\n[0202] 通过用户界面线程检测到图片处理器窗口中图片预处理完成事件的触发;\n[0203] 通过图片处理线程将处理后的图片对象存储为处理结果图片;\n[0204] 通过图片处理线程将所述处理结果图片的文件名和文件路径发送回网页的上传进程中。\n[0205] B19、如B13所述的浏览器,其中,所述图片处理器为浏览器的图片处理组件或者第三方的图片处理器。\n[0206] B20、如B13所述的浏览器,其中,还包括:\n[0207] 第一发送模块,适于将所述处理结果图片发送到移动终端。\n[0208] B21、如B13所述的浏览器,其中,还包括:\n[0209] 第二发送模块,适于将所述处理结果图片上传到云端服务器,由云端服务器生成所述处理结果图片的二维码信息供移动终端进行识别。\n[0210] B22、如B13所述的浏览器,其中,还包括:\n[0211] 保存模块,适于将图片的预处理日志进行保存。\n[0212] B23、如B13所述的浏览器,其中,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的图片收集插件中的图片资源。\n[0213] B24、如B13所述的浏览器,其中,所述获取模块获取图片上传操作中所选取的图片的图片信息中,所选取的图片来自浏览器的收藏夹的网页中的图片资源。
法律信息
- 2022-12-02
未缴年费专利权终止
IPC(主分类): G06F 16/957
专利号: ZL 201310684188.1
申请日: 2013.12.13
授权公告日: 2019.02.05
- 2019-02-05
- 2014-06-04
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310684188.1
申请日: 2013.12.13
- 2014-04-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-11-21
|
2006-05-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |