Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR PROCESSING PICTURES
Document Type and Number:
WIPO Patent Application WO/2013/004114
Kind Code:
A1
Abstract:
The present invention relates to a method and system for processing pictures. The method includes the following steps: determining a target folder that a user has selected; looking up picture information under the target folder; looking up information about all the sub-folders under the target folder; traversing all the sub-folders corresponding to the information about all the sub-folders to acquire picture information under all the sub-folders; and acquiring pictures according to the picture information under the target folder and the picture information under all the sub-folders and processing and displaying the acquired pictures as tiles. The method and system for processing pictures display the pictures under all the sub-folders and the pictures under a folder as tiles, enabling the pictures in any folder and the sub-folders thereof to be browsed as tiles and the operation to be convenient.

Inventors:
WU YONGJIAN (CN)
YANG YANG (CN)
DONG LIQIAN (CN)
CHEN DONG (CN)
Application Number:
PCT/CN2012/076270
Publication Date:
January 10, 2013
Filing Date:
May 30, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TENCENT TECH SHENZHEN CO LTD (CN)
WU YONGJIAN (CN)
YANG YANG (CN)
DONG LIQIAN (CN)
CHEN DONG (CN)
International Classes:
G06F17/30
Foreign References:
JP2003108976A2003-04-11
CN101305607A2008-11-12
CN1707479A2005-12-14
JPH11338604A1999-12-10
Other References:
See also references of EP 2728495A4
None
Attorney, Agent or Firm:
DEQI INTELLECTUAL PROPERTY LAW CORPORATION (CN)
北京德琦知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种处理图片的方法, 包括以下步骤:

确定用户选择的目标文件夹;

查找所述目标文件夹下的图片信息, 查找所述目标文件夹下的所有 子文件夹的信息, 遍历与所述所有子文件夹的信息对应的所有子文件 夹, 获取所有子文件夹下的图片信息;

根据所述目标文件夹下的图片信息及所述所有子文件夹下的图片信 息获取图片, 对获取的图片进行处理并进行通铺展示。

2、根据权利要求 1所述的处理图片的方法, 其特征在于, 在确定用 户选择的目标文件夹的步骤之前还包括: 建立数据库, 将通过扫描获取 的文件夹的信息、 所有子文件夹的信息、 图片信息、 文件夹与子文件夹 关系信息、 文件夹与图片的关联信息存储在所述数据库的步骤, 其中, 从该数据库中查找目标文件夹下的所有子文件夹的信息、 目标文件夹下 的图片信息和 /或所有子文件夹下的图片信息。

3、根据权利要求 2所述的方法, 其特征在于, 通过扫描获取的信息 包括通过扫描主文件表 MFT获取的信息, 其中, 扫描 MFT包括: 定位 MFT数据区, 遍历 MFT数据区, 从该 MFT数据区中获取文 件夹的目录信息及该目录信息所对应的根索引, 根据文件夹的目录信息 及其所对应的根索引重新建立文件夹路径, 获取文件夹的信息。

4、根据权利要求 3所述的处理图片的方法, 其特征在于, 查找所述 目标文件夹下的所有子文件夹的信息的步骤之后, 还包括步骤: 根据所 述所有子文件夹的信息建立任务链表, 所述任务链表呈倒树形结构, 所 述子文件夹的信息对应的子文件夹为所述任务链表的任务节点; 将任务 链表中的任务节点加入到文件夹任务队列中; 设置每个任务节点的完成 属性标识位; 遍历与所述所有子文件夹的信息对应的所有子文件夹, 获取所有子 文件夹下的图片信息的步骤具体包括: 遍历所述文件夹任务队列中的任 务节点, 查找到与任务节点对应的子文件夹中的图片信息。

5、根据权利要求 4所述的处理图片的方法, 其特征在于, 遍历所述 文件夹任务队列中的任务节点包括: 将获取图片信息的任务从完成的任 务节点转移到所述完成的任务节点指向的未完成的任务节点的步骤; 其中, 将获取图片信息的任务从完成的任务节点转移到所述完成的 任务节点指向的未完成的任务节点具体包括:

获取第一任务节点和所述第一任务节点指向的第二任务节点,其中, 第一任务节点为已完成的任务节点, 第二任务节点为未完成的任务节 点;

计算第一树高及第二树高, 其中, 所述第一树高为第一任务节点直 接指向第二任务节点时第二任务节点所在集合的树高, 第二树高为第一 任务节点与第二任务节点分别交换内容后的第一任务节点所在集合的 树高;

判断第一树高是否小于第二树高, 若是, 则将第一任务节点的下一 个任务直接指向第二任务节点, 若否, 则将第一任务节点和第二任务节 点分别交换内容, 并将第二任务节点的下一个任务指向第一任务节点 上。

6、根据权利要求 5所述的处理图片的方法, 其特征在于, 所述获取 第二任务节点的步骤为:

查询第一任务节点所指向的一个任务节点, 检测所述任务节点的完 成属性标识位, 若所述标识位为未完成状态, 则将所述任务节点作为所 述第二任务节点, 若所述标识位为已完成状态, 则继续遍历第一任务节 点所指向的另一个任务节点。 7、根据权利要求 2所述的处理图片的方法, 其特征在于, 还包括步 骤:

获取用户的查看定位操作;

根据所述查看定位操作, 获取定位参数, 所述定位参数包括起始文 件夹位置信息、 终止文件夹位置信息、 起始图片位置信息和终止图片位 置信息;

根据所述定位参数确定位置范围, 查找所述位置范围内的图片, 并 对查找到的图片进行通铺展示。

8、根据权利要求 7所述的处理图片的方法, 其特征在于, 根据所述 定位参数确定位置范围, 查找所述位置范围内的图片, 并对查找到的图 片进行通铺展示的步骤具体包括: 判断緩存中是否存在所述位置范围内 的图片信息, 若是, 则从緩存中获取图片信息, 并根据获取的图片信息 查找图片, 并对查找到的图片进行处理, 生成图片缩略图, 并展示所述 图片缩略图, 若否, 则根据所述位置范围从数据库中查找到相应的图片 信息, 根据查找到的图片信息查找图片, 并对查找到的图片进行处理, 生成图片缩略图, 展示所述图片缩略图, 并将所述图片信息存入所述緩 存中。

9、 根据权利要求 8所述的处理图片的方法, 其特征在于, 用于存储图片信息的緩存为图片信息緩存, 该图片信息緩存包括后 线程緩存单元和前线程緩存单元, 后线程緩存单元用于緩存最新的需要 展示的图片信息, 前线程緩存单元用于緩存正在展示的图片信息, 后线 程緩存单元将其中的图片信息更新到前线程緩存单元后, 后线程緩存单 元被清空。

10、 根据权利要求 2所述的处理图片的方法, 其特征在于, 根据所 述目标文件夹下的图片信息及所述所有子文件夹下的图片信息获取图 片, 对获取到的图片进行处理并进行通铺展示的具体步骤包括: 根据所述图片信息从緩存中查找相应的图片缩略图, 若存在, 则从 緩存中提取相应的图片缩略图并展示, 否则, 根据所述图片信息从数据 库中查找相应的图片, 对图片进行处理生成相应的图片缩略图并展示, 并将得到的图片缩略图存入所述緩存中。

11、 一种处理图片的系统, 其特征在于, 包括:

查找模块, 用于确定用户选择的目标文件夹, 查找所述目标文件夹 下的图片信息, 查找所述目标文件夹下的所有子文件夹的信息, 获取所 有子文件夹下的图片信息, 并根据所述目标文件夹下的图片信息及所述 所有子文件夹下的图片信息获取图片;

遍历模块, 用于遍历与所述所有子文件夹的信息对应的所有子文件 夹;

处理模块, 用于对获取到的用户选择的目标文件夹下的图片及所述 所有子文件夹下的图片进行处理;

展示模块, 用于将所述处理后的所述所有子文件夹下的图片与所述 目标文件夹下的图片进行通铺展示。

12、根据权利要求 11所述的处理图片的系统, 其特征在于, 还包括 创建模块, 所述创建模块用于建立数据库, 并将扫描获取的文件夹的信 息、 所有子文件夹的信息、 图片信息及文件夹与图片的关联信息存储在 所述数据库;

所述查找模块, 用于从该数据库中查找目标文件夹下的所有子文件 夹的信息、 目标文件夹下的图片信息和 /或所有子文件夹下的图片信息。

13、根据权利要求 12所述的处理图片的系统, 其特征在于, 该系统 还包括设置模块;

所述创建模块还用于根据所述所有子文件夹的信息建立任务链表, 所述任务链表呈倒树形结构, 所述子文件夹的信息对应的子文件夹为所 述任务链表的任务节点, 并将任务链表中的任务节点加入到文件夹任务 队列中;

所述设置模块用于设置每个任务节点的完成属性标识位;

所述遍历模块还用于遍历所述文件夹任务队列中的任务节点; 所述查找模块还用于查找到与任务节点对应的子文件夹中的图片信 息。

14、根据权利要求 13所述的处理图片的系统, 其特征在于, 还包括 节点转移模块, 所述节点转移模块用于将获取图片信息的任务从完成的 任务节点转移到所述完成的任务节点指向的未完成的任务节点; 所述节 点转移模块包括:

节点获取单元, 用于获取第一任务节点和所述第一任务节点指向的 第二任务节点, 其中, 第一任务节点为已完成的任务节点, 第二任务节 点为未完成的任务节点;

计算单元, 用于计算第一树高及第二树高, 其中, 所述第一树高为 第一任务节点直接指向第二任务节点时第二任务节点所在集合的树高, 第二树高为第一任务节点与第二任务节点分别交换内容后的第一任务 节点所在集合的树高;

判断单元, 用于判断第一树高是否小于第二树高;

指针单元, 用于在所述第一树高小于第二树高时将第一任务节点的 下一个任务指向第二任务节点, 还用于在所述第一树高不小于第二树高 时将第一任务节点和第二任务节点分别交换内容, 并将第二任务节点的 下一个任务指向第一任务节点上。

15、根据权利要求 14所述的处理图片的系统, 其特征在于, 所述节 点获取单元还用于查询第一任务节点所指向的一个任务节点, 检测所述 任务节点的完成属性标识位, 若所述标识位为未完成状态, 则将所述任 务节点作为所述第二任务节点, 若所述标识位为完成状态, 则继续遍历 第一任务节点所指向的另一个任务节点。

16、根据权利要求 12所述的处理图片的系统, 其特征在于, 该系统 还包括定位操作模块,

所述定位操作模块用于获取用户的查看定位操作, 根据所述查看定 位操作, 获取定位参数, 所述定位参数包括起始文件夹位置信息、 终止 文件夹位置信息、 起始图片位置信息和终止图片位置信息, 并根据所述 定位参数确定位置范围;

所述查找模块还用于查找所述位置范围内的图片;

所述展示模块还用于对所述位置范围内的图片进行通铺展示。

17、根据权利要求 16所述的处理图片的系统, 其特征在于, 该系统 还包括緩存模块, 所述緩存模块用于緩存图片信息;

所述查找模块还用于在所述緩存模块中存在所述位置范围内的图片 信息时, 从所述緩存模块中获取图片信息, 在所述緩存模块中不存在所 述位置范围内的图片信息时, 根据所述位置范围从数据库中查找到相应 的图片信息, 将所述图片信息存储在所述緩存模块中, 所述查找模块还 用于根据获取的所述位置范围内的图片信息查找图片;

所述处理模块还用于对查找到的图片进行处理生成图片缩略图; 所述展示模块还用于展示所述图片缩略图; 所述查找模块还用于。

18、根据权利要求 12所述的处理图片的系统, 其特征在于, 该系统 还包括緩存模块, 所述緩存模块用于存储图片缩略图;

所述查找模块还用于在根据所述图片信息从所述緩存模块中查找到 相应的图片缩略图时, 从緩存模块中提取相应的图片缩略图, 所述展示 模块还用于展示所述图片缩略图; 所述查找模块进一步用于在根据所述 图片信息从緩存模块中未查找到相应的图片缩略图时, 根据所述图片信 息从数据库中查找相应的图片, 所述处理模块还用于对所述图片进行处 理, 生成相应的图片缩略图, 并将得到的图片缩略图存入所述緩存模块 中。

Description:
处理图片的方法及系统

本申请要求于 2011 年 07 月 1 日提交中国专利局、 申请号为 201110184156. 6、 发明名称为 "处理图片的方法及系统" 的中国专利申 请的优先权, 其全部内容通过引用结合在本申请中。 技术领域

本发明涉及计算机技术, 特别涉及一种处理图片的方法及系统。 发明背景 传统的图片管理软件只能针对单一的一个文件 夹下的图片进行浏 览, 如果用户需要对该文件夹下所有子文件夹中的 图片进行浏览, 只能 通过对每一个子文件夹逐一打开, 才能浏览到所有的图片, 浏览操作繁 瑣。 发明内容

基于此, 有必要提供一种处理图片的方法, 从而能够通铺浏览任意 文件夹中及其子文件夹中的图片, 且操作方便。 其中, 通铺浏览是指不 需要逐层打开目标文件夹下的各个子文件夹、 而可以对目标文件夹下的 所有子文件夹(包括该目标文件夹) 的所有图片进行浏览的模式, 即能 够穿透该目标文件夹, 而浏览该目标文件夹及其所有子文件夹中的图 片 的浏览模式。

一种处理图片的方法, 包括以下步骤:

确定用户选择的目标文件夹;

查找所述目标文件夹下的图片信息, 查找所述目标文件夹下的所有 子文件夹的信息, 遍历与所述所有子文件夹的信息对应的所有子 文件 夹, 获取所有子文件夹下的图片信息;

根据所述目标文件夹下的图片信息及所述所有 子文件夹下的图片信 息获取图片, 对获取的图片进行处理并进行通铺展示。

此外, 还有必要提供一种可通铺浏览任意文件夹中以 及其子文件中 的图片, 且操作方便的处理图片的系统。

一种处理图片的系统, 包括:

查找模块, 用于确定用户选择的目标文件夹, 查找所述目标文件夹 下的图片信息, 查找所述目标文件夹下的所有子文件夹的信息 , 获取所 有子文件夹下的图片信息, 并根据所述目标文件夹下的图片信息及所述 所有子文件夹下的图片信息获取图片;

遍历模块,用于遍历所述所有子文件夹的信息 对应的所有子文件夹; 处理模块, 用于对获取到的用户选择的目标文件夹下的图 片及所述 所有子文件夹下的图片进行处理;

展示模块, 用于将所述处理后的所述所有子文件夹下的图 片与所述 目标文件夹下的图片进行通铺展示。

上述处理图片的方法及系统, 获取到用户选择的文件夹后, 查找到 该文件夹下的图片信息, 同时查找到该文件夹下的所有子文件夹的信息 及所有子文件夹对应的图片信息, 根据文件夹下的图片信息及所有子文 件夹下的图片信息获取到图片, 对图片进行处理, 并将所有子文件夹下 的图片与文件夹下的图片进行通铺展示, 从而实现了通铺浏览任意文件 夹中以及其子文件夹中的图片, 且操作方便。 附图简要说明

图 1为一个实施例中处理图片的方法流程图; 图 2为一个实施例中将获取图片信息的任务从完 的任务节点转移 到未完成的任务节点的具体流程图;

图 3为一个实施例中任务节点及节点集合示意图

图 4为一个实施例中第一任务节点 A和第二任务节点 B不交换内容 的示意图;

图 5为一个实施例中第一任务节点 A和第二任务节点 B交换内容的 示意图;

图 6 为一个实施例中获取用户查看定位操作浏览图 片的具体流程 图;

图 7为另一个实施例中处理图片的方法流程图;

图 8为一个实施例中处理图片的系统的结构示意 ;

图 9为另一个实施例中处理图片的系统的结构示 图;

图 10为图 9中节点转移模块的内部结构示意图。 实施本发明的方式

如图 1所示, 在一个实施例中, 一种处理图片的方法, 包括以下步 骤:

步骤 S110, 获取用户选择的文件夹。

确定用户通过鼠标或键盘等输入设备选择的文 件夹。

在步骤 S110之前还包括:建立数据库,将扫描获取的 件夹的信息、 所有子文件夹的信息、 图片信息、 文件夹与子文件夹关系、 文件夹与图 片的关联信息存储在该数据库的步骤。 扫描文件系统后, 获取到文件夹 的信息、 子文件夹的信息、 图片信息及文件夹与图片的关联信息等, 将 其存储在数据库中, 方便查找。 文件夹的信息、 子文件夹信息均可包括 各自文件夹名称、 各自文件夹存储的图片数量、 各自文件夹对应的子文 件夹关系等。 图片信息可包括图片的名称、 图片的大小等。 文件夹与图 片的关联信息即为文件夹与图片的对应关系。

另外, windows的一种文件系统 NTFS( New Technology File System ) 中, 所有存放的数据均在主文件表(Master File Table, 筒称 MFT ) 中。 MFT由文件记录数组构成。依赖主文件表可对文 件夹对应的子文件夹的 关系建立相应的索引, 以方便查找。 通过 MFT可快速扫描文件系统中 的所有文件。 通过 MFT扫描文件的过程包括:

( 1 )定位 MFT数据区。

首先确定主文件表的数据区, 数据区记录有文件夹的目录信息, 该 文件夹的目录信息包括文件夹名称、 文件夹寻址和文件夹中图片数量 等。

( 2 )遍历 MFT, 从该 MFT中获取文件夹的目录信息及该目录信息 所对应的根索引。

逐一遍历 MFT中数据, 获取文件夹的目录信息对应的根索引。

( 3 )根据文件夹的目录信息及其所对应的根索引 新建立文件夹路 径, 获取文件夹的信息。

该目录信息包括文件夹名称和文件夹寻址, 根据目录信息中的文件 夹名称、文件夹寻址和文件夹中图片数量,及 根索引确定文件夹的路径, 获取文件夹与子文件夹的关系等。

步骤 S120, 查找该文件夹下的图片信息。

从数据库或緩存中查找用户选择的文件夹下的 图片信息。

步骤 S130, 查找该文件夹下的所有子文件夹的信息。

从数据库或緩存中查找文件夹下的所有子文件 夹的信息。

步骤 S140, 遍历与所有子文件夹的信息对应的所有子文件 夹, 获取 所有子文件夹下的图片信息。 遍历文件夹下的所有子文件夹,查找到所有子 文件夹中的图片信息。 其中, 步骤 S120与步骤 S130的顺序可调, 换言之, 也可以先查找 该文件夹下的所有子文件夹的信息, 即先查找目标文件夹下的所有子文 件夹的信息, 然后再查找目标文件夹下的图片信息以及目标 文件夹下的 所有子文件夹中的图片信息。

步骤 S150,根据该文件夹下的图片信息及所有子文件 下的图片信 息获取图片, 对获取的图片进行处理并进行通铺展示。

根据图片信息获取到图片, 对图片进行处理并将文件夹下的图片与 所有子文件夹下的图片进行通铺展示, 从而实现了在一个文件夹下同时 浏览该文件夹下的图片及所有子文件夹中的图 片。

此外, 在步骤 S130和步骤 S140中, 获取文件夹下的图片信息及子 文件夹下的图片信息可从緩存中查找相应的图 片信息, 若緩存中存在相 应的图片信息, 则直接从緩存中提取子文件夹对应的图片信息 。 如此不 需从数据库中查找图片信息, 节省时间。

该实施例中, 用于存储图片信息的緩存为图片信息緩存, 该图片信 息緩存可包括后线程緩存单元和前线程緩存单 元, 后线程緩存单元用于 緩存最新的需要展示的图片信息, 前线程緩存单元用于緩存正在展示的 图片信息。 后线程緩存单元将其中的图片信息更新到前线 程緩存单元 后, 后线程緩存单元被清空。 采用双緩存, 避免了在前线程中与后线程 中使用同一份数据而导致数据不一致, 以及为了数据一致性而导致大量 的锁操作影响性能问题。

在一个实施例中, 在查找该文件夹下的所有子文件夹的信息的步 骤 之后还包括: 根据该子文件夹的信息建立任务链表, 该子文件夹的信息 对应的子文件夹为任务链表的任务节点; 将任务链表中的任务节点加入 到文件夹任务队列中。 任务链表中的任务为根据子文件夹的信息查找 该 子文件夹中的图片信息。

该实施例中, 任务链表呈倒树形结构。 建立的任务链表的节点的数 据结构包括: 任务节点的完成属性标志位、 任务节点所在集合的树高; 指向下一节点的指针等。

另外, 可设定加入到文件夹任务队列中的任务节点的 个数, 如设定 5 个。 在文件夹任务队列中设定任务节点的个数, 避免文件夹任务队列 过长, 影响遍历效率。

当任务节点加入到文件夹任务队列中时, 遍历与该所有子文件夹的 信息对应的所有子文件夹, 获取所有子文件夹下的图片信息的步骤具体 为: 遍历文件夹任务队列中的任务节点, 查找到与任务节点对应的子文 件夹中的图片信息。 通过遍历文件夹任务队列, 逐一查找相应的文件夹 中的图片信息。

任务链表建立后, 完成一个任务节点后, 获取图片信息的任务将从 该完成的任务节点转移到未完成的任务节点。 该完成的任务节点可在任 务链表中删除。

如图 2所示, 获取图片信息的任务将从该完成的任务节点转 移到未 完成的任务节点的步骤包括:

步骤 S210, 获取第一任务节点和第一任务节点指向的第二 任务节 点, 其中, 第一任务节点为已完成的任务节点, 第二任务节点为未完成 的任务节点。

在一个任务节点周围存在其他任务节点, 挂在一个任务节点上的其 他节点表示离该任务节点最接近且完成的任务 节点集合, 如图 3所示, 第一任务节点 A为完成的任务节点,将被删除, 第二任务节点 B表示临 近第一任务节点 A的下一个未完成的任务节点。

在一个实施例中, 上述处理图片的方法还包括步骤: 设置每个任务 节点的完成属性标识位。 该完成属性标识位可用 true (或 1 )表示完成 状态, false (或 0 )表示未完成状态。

步骤 S210 具体为: 查询第一任务节点所指向的一个任务节点, 检 测该任务节点的完成属性标识位, 若该标识位为未完成状态, 则将该任 务节点作为第一任务节点指向的第二任务节点 , 若标识位为完成状态, 则继续遍历第一任务节点所指向的另一个任务 节点。

步骤 S220, 计算第一树高及第二树高, 其中, 第一树高为第一任务 节点直接指向第二任务节点时第二任务节点所 在集合的树高, 第二树高 为第一任务节点与第二任务节点分别交换内容 后第一任务节点所在集 合的树高。

以第一任务节点 A所在集合的树高为 heightA, 第二任务节点 B所 在集合的树高为 heightB进行计算。

如图 4所示,表示把第一任务节点 A的下一个任务直接指向第二任 务节点 B, 并且将第一任务节点 A标志为已完成的任务节点, 原来挂在 第一任务节点 A上的任务节点集合全部通过 A挂在 B上, 因此当前第 二任务节点 B所在集合的树高为 heightA+1和 heightB两者中的最大值 max(heightA+l , heightB), 即第一树高。

如图 5所示,表示把第一任务节点 A和第二任务节点 B的内容交换 (即原来第一任务节点 A为新的第二任务节点 B,原来的第二任务节点 B为新的第一任务节点 A ), 第一任务节点 A标识为已完成任务, 并把 第一任务节点 A的下一个任务指向第二任务节点 B,原来挂在第二任务 节点 B上的节点集合通过第一任务节点 A挂在新的第二任务节点 B上, 因此当前第二任务节点 B所在集合的树高为 heightB+1和 heightA两者 中最大值 max(heightB+l , heightA), 即第二树高。

步骤 S230, 判断第一树高是否小于第二树高, 若是, 则执行步骤 S240, 否则, 执行步骤 S250。

比较 max(heightA+l , heightB)和 max(heightB+l , heightA)获取两者 中的最小值, 当 max(heightA+ 1 , heightB) 'J、于 max(heightB+ 1 , heightA) 时, 直接把第一任务节点 A 的下一个任务指向第二任务节点 B; 当 max(heightA+l , heightB)不小于 max(heightB+l , heightA)时, 交换第一 任务节点 A和第二任务节点 B的内容后, 把新的第一任务节点 A的下 一个任务指向新的第二任务节点 B , 在位置上即为原来的第二任务节点 B的下一个任务指向原来的第一任务节点 A。

步骤 S240,将第一任务节点的下一个任务节点直接指 第二任务节 点。

步骤 S250, 将第一任务节点和第二任务节点分别交换内容 , 并把第 二任务节点的下一个任务指向第一任务节点上 。

上述任务链表采用倒树结构, 且通过计算树高得出从完成的任务节 点到未完成的任务节点的方式, 如此得出任务链表的倒树结构的树高增 长极其緩慢, 但从完成的一个任务节点转移到下一个未完成 的任务节点 的时间减少, 对于非常大的任务数量来说, 效率高, 方便快速的获取图 片信息, 进而快速浏览图片。

当图片数量较多, 在整个展示界面上将无法完全展示所有的图片 缩 略图时, 图片缩略图在展示界面上可以滚动条形式或分 页的形式展示。 如图 6所示,获取用户移动滚动条或其他操作后, 理图片的具体步骤: 步骤 S610, 获取用户的查看定位操作。

该查看定位操作可为移动滚动条或点击分页形 式展示的分页按钮等 操作。

步骤 S620, 根据该查看定位操作, 获取定位参数, 该定位参数包括 起始文件夹位置信息、 终止文件夹位置信息、 起始图片位置信息和终止 图片位置信息。

用户移动滚动条后, 展示界面上展示的图片缩略图位置发生变化, 一部分在展示界面上展示的图片缩略图被隐藏 , 一部分在展示界面上未 展示的图片缩略图将被展示, 相应的起始图片位置信息、 终止图片位置 信息、 起始文件夹位置信息、 终止文件夹位置信息也发生变化。

步骤 S630, 根据该定位参数确定位置范围, 查找该位置范围内的图 片, 并对查找到的图片进行通铺展示。

步骤 S630 具体包括: 判断緩存中是否存在该位置范围内的图片信 息, 若是, 则从緩存中获取图片信息, 并根据获取的图片信息查找图片, 并对查找到的图片进行处理, 生成相应的图片缩略图并展示, 若否, 则 根据该位置范围从数据库中查找到相应的图片 信息, 根据获取的图片信 息查找图片, 并对查找到的图片进行处理, 生成图片缩略图并展示, 并 将图片信息存入緩存中。 将图片信息存入緩存方便下次查看时不需重新 从数据库中查找, 提高效率。 该緩存为图片信息緩存。 将位置范围内的 图片缩略图展示给用户,以便用户浏览。以图 片缩略图的形式展示图片, 节省展示空间。

另外, 根据位置范围内的图片信息可从緩存中查找相 应的图片缩略 图, 若存在, 则直接从緩存中提取图片缩略图并展示, 若不存在, 根据 图片信息从数据库中查找相应的图片, 对查找到的图片进行处理生成图 片缩略图并展示, 并将得到的图片缩略图存入緩存中。 该緩存为缩略图 緩存。 从緩存中提取图片缩略图, 提高了效率, 节省网络资源。

在一个实施例中, 如图 7所示, 一种处理图片的方法, 包括以下步 骤:

步骤 S711 , 建立数据库及缩略图数据库, 将扫描获取的文件夹的信 息、 所有子文件夹的信息、 图片信息、 文件夹与子文件夹关系、 文件夹 与图片的关联信息存储在该数据库, 将获取的图片缩略图存储在缩略图 数据库。 数据库中的内容与前面描述一致, 在此不再赘述。

步骤 S713 , 获取用户选择的文件夹。

本步骤中, 确定用户选择的目标文件夹是哪一文件夹。

步骤 S715 , 从緩存中查找文件夹中的图片信息, 若存在, 则执行步 骤 S717, 否则, 执行步骤 S719。 当用户浏览一次图片后, 在緩存中存 储有上次浏览过的文件夹的图片信息及图片。 在緩存中若存在该次查找 文件夹的图片信息, 则可直接从緩存中提取。

步骤 S717, 从緩存中提取图片信息。 緩存也可采用双緩存机制, 即 前线程緩存单元和后线程緩存单元, 前线程緩存单元提供正在展示的图 片信息, 后线程緩存单元提供最新需要展示的图片信息 , 如此避免在前 线程中与后线程中使用同一份数据而导致数据 不一致, 以及为了数据一 致性而导致大量的锁操作影响性能问题。

步骤 S719 , 从数据库中查找到文件夹中的图片信息。

步骤 S721 , 查找该文件夹下的所有子文件夹的信息。

步骤 S723 , 遍历与所有子文件夹的信息对应的所有子文件 夹。 遍历 过程与前面描述的遍历过程一致, 在此不再重述。

步骤 S725 , 从緩存中查找所有子文件夹下的图片信息, 若存在, 则 执行步骤 S727 , 否则, 执行步骤 S729。

步骤 S727 , 从緩存中提取所有子文件夹下的图片信息。

步骤 S729 , 从数据库中查找到所有子文件夹下的图片信息 。

其中, 本发明不限定查找目标文件夹中的图片信息与 查找目标文件 夹下的所有子文件夹信息的顺序, 也不限定查找目标文件夹中的图片信 息与查找子文件夹中的图片信息之间的顺序, 例如, 步骤 S719也可以 放到步骤 S721和步骤 S723之间。 步骤 S731 , 根据该图片信息从緩存中查找相应的图片缩略 图, 若存 在, 则执行步骤 S733 , 否则, 执行步骤 S735。

步骤 S733 , 从緩存中提取相应的图片缩略图。

步骤 S735 ,根据该图片信息从缩略图数据库中查找相应 图片缩略 图, 若存在, 则执行步骤 S737, 否则, 执行步骤 S739。

步骤 S737, 从缩略图数据库中提取相应的图片缩略图。 从缩略图数 据库中提取图片缩略图,不需每次查看图片, 对需对图片进行解码处理, 生成缩略图, 从而降低效率。

步骤 S739, 根据图片信息从数据库中查找相应的图片, 对图片进行 处理生成相应的图片缩略图, 并将得到的图片缩略图存入该缩略图数据 库中。

步骤 S741 , 通铺展示该文件夹及所有子文件夹下的图片缩 略图。 在一个实施例中, 如图 8所示, 一种处理图片的系统, 包括查找模 块 810、 遍历模块 820、 处理模块 830和展示模块 840。

查找模块 810用于获取用户选择的文件夹, 查找该文件夹下的图片 信息, 查找该文件夹下的所有子文件夹的信息。 文件夹的信息及子文件 夹的信息所包括的内容类型相同, 均可包括各自文件夹名称、 各自文件 夹存储的图片数量、 各自文件夹对应的子文件夹关系等。 图片信息可包 括图片的名称、 图片的大小等。

遍历模块 820 用于遍历与所有子文件夹的信息对应的所有子 文件 夹。 遍历模块 820遍历该文件夹中的所有子文件夹, 以便查找模块 810 查找所有子文件夹下的图片信息。

查找模块 810还用于获取所有子文件夹下的图片信息。查 找模块 810 根据文件夹下的图片信息及所有子文件夹下的 图片信息, 获取图片。

处理模块 830用于对获取到的文件夹下的图片及所有子文 件夹下的 图片进行处理。

展示模块 840还用于将处理后的所有子文件夹下的图片与 该文件夹 下的图片进行通铺展示。 展示模块 840将文件夹中的图片与所有子文件 夹中的图片展示在一起, 实现了在一个文件夹下同时浏览该文件夹下的 图片及所有子文件夹中的图片。

在一个实施例中, 如图 9所示, 上述处理图片的系统, 除了包括查 找模块 810、 遍历模块 820、 处理模块 830和展示模块 840, 还包括创建 模块 850、 设置模块 860、 节点转移模块 870、 定位操作模块 880、 緩存 模块 890和缩略图数据库 910。

其中,创建模块 850用于创建数据库,将扫描获取的文件夹的信 息、 所有子文件夹的信息、 图片信息、 文件夹与子文件夹关系、 文件夹与图 片的关联信息存储在该数据库。 文件夹与图片的关联信息即为文件夹与 图片的对应关系。 创建模块 850还用于根据该所有子文件夹的信息建立 任务链表, 任务链表呈倒树形结构, 该所有子文件夹的信息对应的所有 子文件夹为该任务链表的任务节点, 并将任务链表中的任务节点加入到 文件夹任务队列中。 任务链表中的任务为根据子文件夹的信息查找 该子 文件夹中的图片信息。

任务链表的节点的数据结构定义如方法中描述 。 创建模块 850还可 设定加入到文件夹任务队列中的任务节点的个 数, 如设定 5个。 在文件 夹任务队列中设定任务节点的个数, 避免文件夹任务队列过长, 影响遍 历效率。

遍历模块 820还用于遍历文件夹任务队列。 查找模块 810查找到与 任务节点对应的子文件夹中的图片信息。 查找模块 810可从数据库中查 找到该图片信息。

设置模块 860用于设置每个任务节点的完成属性标识位。 该完成属 性标识位可用 true (或 1 )表示完成状态, false (或 0 )表示未完成状态。 节点转移模块 870用于将获取图片信息的任务从完成的任务节 点转 移到该完成的任务节点指向的未完成的任务节 点。

在一个实施例中,如图 10所示,节点转移模块 870包括节点获取单 元 871、 计算单元 873、 判断单元 875和指针单元 877。

节点获取单元 871用于获取第一任务节点和第一任务节点指向 的第 二任务节点, 其中, 第一任务节点为已完成的任务节点, 第二任务节点 为未完成的任务节点。 在一个任务节点周围存在其他任务节点, 挂在一 个任务节点上的其他节点表示离该任务节点最 接近且完成的任务节点 集合, 如图 3所示, 第一任务节点 A为完成的任务节点, 将被删除, 第 二任务节点 B表示临近第一任务节点 A的下一个未完成的任务节点。

节点获取单元 871 还用于查询第一任务节点所指向的一个任务节 点, 检测该任务节点的完成属性标识位, 若该标识位为未完成状态, 则 将该任务节点作为第一任务节点指向的第二任 务节点, 若该标识位为完 成状态, 则继续遍历第一任务节点所指向的另一个任务 节点。

计算单元 873用于计算第一树高及第二树高, 其中, 第一树高为第 一任务节点直接指向第二任务节点时第二任务 节点所在集合的树高, 第 二树高为第一任务节点与第二任务节点分别交 换内容后第一任务节点 所在集合的树高。

以第一任务节点 A所在集合的树高为 heightA, 第二任务节点 B所 在集合的树高为 heightB进行计算。

如图 4所示,表示把第一任务节点 A的下一个任务直接指向第二任 务节点 B, 并且将第一任务节点 A标志为已完成的任务节点, 原来挂在 第一任务节点 A上的节点集合全部通过 A挂在 B上, 因此当前第二任 务节点 B 所在集合的树高为 heightA+1 和 heightB 两者中的最大值 max(heightA+l , heightB), 即第一树高。

如图 5所示,表示把第一任务节点 A和第二任务节点 B的内容交换 (即原来第一任务节点 A为新的第二任务节点 B,原来的第二任务节点 B为新的第一任务节点 A ), 第一任务节点 A标识为已完成任务, 并把 新的第一任务节点 A的下一个任务指向新的第二任务节点 B ,原来挂在 第二任务节点 B上的任务节点集合通过第一任务节点 A挂在新的第二任 务节点 B上, 因此当前第二任务节点 B所在集合的树高为 heightB+1和 heightA两者中最大值 max(heightB+ 1 , heightA) , 即第二树高。

判断单元 875用于判断第一树高是否小于第二树高。

指针单元 877用于在该第一树高小于第二树高时将第一任 务节点的 下一个任务节点直接指向第二任务节点, 还用于在该第一树高不小于第 二树高时将第一任务节点和第二任务节点分别 交换内容, 并把第二任务 节点的下一个任务指向第一任务节点上。

比较 max(heightA+l , heightB)和 max(heightB+l , heightA)获取两者 中的最小值, 当 max(heightA+ 1 , heightB) 'J、于 max(heightB+ 1 , heightA) 时,指针单元 877直接把第一任务节点 A的下一个任务指向第二任务节 点 B; 当 max(heightA+ 1 , heightB)不 'J、于 max(heightB+ 1 , heightA)时, 指针单元 877交换第一任务节点 Α和第二任务节点 B的内容后,把新的 第一任务节点 A的下一个任务指向第二任务节点 B ,在位置上即为原来 的第二任务节点 B的下一个任务指向原来的第一任务节点 A。

此外,还可包括删除模块,用于删除任务链表 中已完成的任务节点。 定位操作模块 880用于获取用户的查看定位操作, 根据查看定位操 作, 获取定位参数, 该定位参数包括起始文件夹位置信息、 终止文件夹 位置信息、 起始图片位置信息和终止图片位置信息, 并根据该定位参数 确定位置范围。 该查看定位操作可为移动滚动条或点击分页形 式展示的 分页按钮等操作。 查找模块 810还用于查找该位置范围内的图片; 展示 模块 840还用于对查找到的该位置范围内的图片进行 通铺展示。 此外, 处理模块 830也可将查找到的位置范围内的图片进行处理 生成图片缩略 图, 展示模块 840通铺展示该图片缩略图。

緩存模块 890用于緩存图片信息。 查找模块 810还用于在緩存模块 890中存在该位置范围内的图片信息时, 从緩存模块 890中获取图片信 息, 查找模块 810还用于根据该获取的图片信息查找到图片, 处理模块 820还用于对查找到的图片进行处理, 生成图片缩略图, 展示模块 830 还用于通铺展示图片缩略图; 查找模块 810还用于在緩存模块 890中不 存在该位置范围内的图片信息时, 根据该位置范围从数据库中查找到相 应的图片信息, 緩存模块 890还用于存储该图片信息。

此外, 緩存模块 890包括图片信息緩存模块。 该图片信息緩存模块 用于緩存图片信息。 该图片信息緩存模块可包括后线程緩存单元和 前线 程緩存单元, 后线程緩存单元用于緩存最新的需要展示的图 片信息, 前 线程緩存单元用于緩存正在展示的图片信息。 后线程緩存单元将其中的 图片信息更新到前线程緩存单元后, 后线程緩存单元被清空。 采用双緩 存, 避免了在前线程中与后线程中使用同一份数据 而导致数据不一致, 以及为了数据一致性而导致大量的锁操作影响 性能问题。

緩存模块 890还可用于緩存图片缩略图。 查找模块 810还用于在根 据图片信息从緩存模块 890中查找到相应的图片缩略图时, 则从緩存模 块 890中提取相应的图片缩略图。 从緩存中提取图片缩略图, 提高了效 率, 节省网络资源。

緩存模块 890还可包括缩略图緩存模块, 该缩略图緩存模块用于緩 存图片缩略图。

缩略图数据库 910用于存储图片缩略图。 查找模块 810还用于在根 据图片信息从缩略图数据库 910中查找到相应的图片缩略图时, 从缩略 图数据库 910中提取相应的图片缩略图, 进一步用于在根据图片信息从 缩略图数据库 910中未查找到相应的图片缩略图时, 根据图片信息从数 据库中查找相应的图片, 处理模块 820还用于对图片进行处理生成相应 的图片缩略图, 并将得到的图片缩略图存入缩略图数据库 910中。

上述处理图片的方法及系统, 采用获取到用户选择的文件夹后, 查 找到该文件夹下的图片信息, 并且查找到该文件夹下的所有子文件夹的 信息及所有子文件夹对应的图片信息, 根据文件夹下的图片信息及所有 子文件夹下的图片信息获取到图片, 对图片进行处理, 并将所有子文件 夹下的图片与文件夹下的图片进行通铺展示, 实现通铺浏览任意文件夹 中以及其子文件夹中的图片, 且操作方便。

另外, 采用任务链表可快速查找到未完成的任务节点 , 提高查找效 率, 进而提高浏览效率; 采用从緩存中获取图片信息, 提高了获取图片 信息的速率; 采用图片缩略图形式展示, 节省空间; 采用缩略图数据库 存储图片缩略图, 不需每次浏览图片时, 都对图片进行解码处理, 减轻 处理器负担, 节省网络资源; 采用从緩存中获取图片缩略图, 提高获取 图片缩略图速率, 节省网络资源。 和详细, 但并不能因此而理解为对本发明专利范围的限 制。 应当指出的 是, 对于本领域的普通技术人员来说, 在不脱离本发明构思的前提下, 还可以做出若干变形和改进, 这些都属于本发明的保护范围。 因此, 本 发明专利的保护范围应以所附权利要求为准。