基于位图的数据隐藏方法及装置制造方法

文档序号:6551197阅读:177来源:国知局
基于位图的数据隐藏方法及装置制造方法
【专利摘要】本发明公开了一种基于位图的数据隐藏方法及装置,属于数据隐藏领域。所述方法包括:读取位图的数据区,所述数据区存储有所述位图中各个像素点的颜色信息;将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间作为数据存储空间;将需要隐藏的数据写入所述数据存储空间中。本发明通过使用位图本身的存储数据位来存储需要隐藏的数据,解决了目前利用图像隐藏数据的方法会明显增加图像的数据量,且易被16进制编辑器直接发现尾部隐藏的数据的问题;达到了隐藏了数据后的图像的数据量保持不变,且隐藏的数据不易被发现的效果。
【专利说明】基于位图的数据隐藏方法及装置

【技术领域】
[0001] 本发明涉及图像处理领域,特别涉及一种基于位图的数据隐藏方法及装置。

【背景技术】
[0002] 数据隐藏技术是一种将秘密数据隐藏在其它媒体(如音频、视频、图像)中的技 术。它通常以音频、视频或图像中的一种作为载体,将秘密数据嵌入其中。数据隐藏的目的 在于保证隐藏的数据不引起人们的注意。
[0003] 目前,一种将数据隐藏于图像中的方法为:直接在图像尾部增加所要隐藏的数据, 此方法通过使用Windows内置的文件拷贝命令copy,即可直接完成。此时,该图像被普通的 图像显示程序打开时,仍然会正常显示。
[0004] 在实现本发明实施例的过程中,发明人发现上述技术至少存在以下问题:上述数 据隐藏技术虽然能够起到隐藏数据的目的,但是,通过上述方法会使图片的数据量明显增 大,比如,原图像的数据量是3MB,需要隐藏的数据的数据量是1MB,则隐藏数据后的图像的 数据量为4MB。另外,上述隐藏数据后的图像还容易被16进制编辑器直接发现尾部隐藏的 数据。


【发明内容】

[0005] 为了解决目前利用图像隐藏数据的方法会明显增加图像大小,且易被16进制编 辑器直接发现尾部隐藏的数据的问题,本发明实施例提供了一种基于位图的数据隐藏方 法。所述技术方案如下:
[0006] 根据本发明的一个方面,提供了一种基于位图的数据隐藏方法,所述方法包括:
[0007] 读取位图的数据区,所述数据区存储有所述位图中各个像素点的颜色信息;
[0008] 将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间 作为数据存储空间;
[0009] 将需要隐藏的数据写入所述数据存储空间中。
[0010] 可选的,所述将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所 组成的空间作为数据存储空间之前,还包括:
[0011] 检测所述数据区中用于存储单个像素点的颜色信息的二进制位数是否达到预定 位数;
[0012] 如果用于存储单个像素点的颜色信息的二进制位数达到所述预定位数,则执行所 述将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间作为数 据存储空间的步骤。
[0013] 可选的,所述将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所 组成的空间作为数据存储空间,包括:
[0014] 将所述数据区中用于存储颜色信息的各个字节中从最高位开始的连续η位二进 制位所组成的空间作为数据存储空间,η为正整数。
[0015] 可选的,所述将需要隐藏的数据写入所述数据存储空间中之后,还包括:
[0016] 检测写入所述数据后的位图与未写入所述数据的位图之间的颜色差异程度是否 超过预定阈值;
[0017] 若检测出所述颜色差异程度超过了所述预定阈值,则重新将所述数据区中用于存 储颜色信息的各个字节中的n-1位二进制位所组成的空间作为数据存储空间,并将所述需 要隐藏的数据写入所述数据存储空间。
[0018] 可选的,所述将需要隐藏的数据写入所述数据存储空间中之前,还包括:
[0019] 计算所述数据存储空间的可存储数据量;
[0020] 检测所述需要隐藏的数据的数据量是否大于所述可存储数据量;
[0021] 若检测结果为所述需要隐藏的数据的数据量大于所述可存储数据量,则根据所述 可存储数据量从所述需要隐藏的数据中截取一部分数据作为在所述位图中需要隐藏的数 据。
[0022] 根据本发明的第二方面,提供了一种基于位图的数据隐藏装置,所述装置包括:
[0023] 数据读取模块,用于读取位图的数据区,所述数据区存储有所述位图中各个像素 点的颜色信息;
[0024] 空间确定模块,用于将所述数据读取模块读取的所述数据区中用于存储颜色信息 的各个字节中的部分二进制位所组成的空间作为数据存储空间;
[0025] 数据写入模块,用于将需要隐藏的数据写入所述空间确定模块确定的所述数据存 储空间中。
[0026] 可选的,所述装置,还包括:
[0027] 位数检测模块,用于检测所述数据读取模块读取的所述数据区中用于存储单个像 素点的颜色信息的二进制位数是否达到预定位数;
[0028] 所述空间确定模块,用于如果所述位数检测模块的检测结果为用于存储单个像素 点的颜色信息的二进制位数达到所述预定位数,则执行所述将所述数据区中用于存储颜色 信息的各个字节中的部分二进制位所组成的空间作为数据存储空间的步骤。
[0029] 可选的,所述空间确定模块,用于将所述数据读取模块读取的所述数据区中用于 存储颜色信息的各个字节中从最高位开始的连续η位二进制位所组成的空间作为数据存 储空间,η为正整数。
[0030] 可选的,所述装置,还包括:差异检测模块和空间重确模块;
[0031] 所述差异检测模块,用于检测所述数据写入模块写入所述数据后的位图与未写入 所述数据的位图之间的颜色差异程度是否超过预定阈值;
[0032] 所述空间重确模块,用于检测出所述颜色差异程度超过了所述预定阈值时,重新 将所述数据读取模块读取的所述数据区中用于存储颜色信息的各个字节中的n-1个二进 制位所组成的空间作为数据存储空间;再利用所述数据写入模块将所述需要隐藏的数据写 入所述空间重确模块确定的所述数据存储空间中。
[0033] 可选的,所述装置,还包括:容量计算模块和容量检测模块;
[0034] 所述容量计算模块,用于计算所述数据存储空间的可存储数据量;
[0035] 所述容量检测模块,用于检测所述需要隐藏的数据的数据量是否大于所述可存储 数据量;若检测结果为所述需要隐藏的数据的数据量大于所述可存储数据量,则根据所述 可存储数据量从所述需要隐藏的数据中截取一部分数据作为在所述位图中所述需要隐藏 的数据。
[0036] 本发明实施例提供的技术方案带来的有益效果是:
[0037] 通过使用位图本身的存储数据位来存储需要隐藏的数据,解决了目前利用图像隐 藏数据的方法会明显增加图像的数据量,且易被16进制编辑器直接发现尾部隐藏的数据 的问题;达到了隐藏了数据后的图像的数据量保持不变,且隐藏的数据不易被发现的效果。

【专利附图】

【附图说明】
[0038] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施 例,并与说明书一起用于解释本发明的原理。
[0039] 图1是根据一示例性实施例示出的一种基于位图的数据隐藏方法的方法流程图;
[0040] 图2A是根据另一示例性实施例示出的一种基于位图的数据隐藏方法的方法流程 图;
[0041] 图2B是根据一示例性实施例示出的存储空间示意图;
[0042] 图3是根据一示例性实施例示出的一种基于位图的数据隐藏装置的结构方框图;
[0043] 图4是根据另一示例性实施例示出的一种基于位图的数据隐藏装置的结构方框 图;
[0044] 图5是是根据一示例性实施例示出的终端或服务器的结构示意图。

【具体实施方式】
[0045] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例 中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0046] 本文中主要以隐藏数据的载体为位图来举例说明。
[0047] 位图(bitmap)是一种使用像素点阵列来表示的图像,比如320*240的位图就包 括320行*240列的像素点阵列,共76800个像素点。其中,每个像素点的颜色信息可由灰 度值表示;也可以由RGB (Red Green Blue,红绿蓝)三个颜色信息的组合来表示;还可以由 ARGB(AlphaRed Green Blue,透明度-红绿蓝)四个颜色信息的组合来表示。
[0048] 在不同的位图中,每个像素点的颜色信息在存储时所需要使用的二进制位数可以 分为1、4、8、16、24及32位等,位数越多则颜色越丰富。相应地,位图的数据量会越大。 [0049] 当一个像素点的颜色信息仅采用一个二进制位来表示时,因为一个二进制位只能 表示黑白两种颜色,所以又称之为二值位图。
[0050] 当一个像素点的颜色信息采用24位RGB组合来表示时,由于红色R采用8位二进 制位表示、绿色G采用8位二进制位表示、蓝色B采用8位二进制,每种颜色取值范围为0? 255,0代表明度最低,255代表明度最高,所以可以表示出各种颜色,称之为真彩色位图。
[0051] 当一个像素点的颜色信息采用32位ARGB组合来表示时,由于增加了一个透明度 A,A采用8位二进制位表示,取值范围为0?255,0代表完全透明,255代表完全不透明,可 以更好地表示位图。
[0052] 请参考图1,其示出了本发明一个实施例所提供的基于位图的数据隐藏方法的方 法流程图。该方法可以用于终端中或服务器中,本实施例以该方法应用于终端中来举例说 明。该方法可以包括如下几个步骤:
[0053] 步骤101,读取位图的数据区,数据区存储有位图中各个像素点的颜色信息;
[0054] 位图的数据文件主要包括:文件头、位图信息头和数据区等部分,位图的数据区 存储有位图中每个像素点的颜色信息。
[0055] 步骤102,将数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的 空间作为数据存储空间;
[0056] -个字节有着8位二进制数,部分二进制位可以是8位二进制数中的一部分。
[0057] 步骤103,将需要隐藏的数据写入数据存储空间中。
[0058] 综上所述,本实施例提供的基于位图的数据隐藏方法,通过使用位图本身的存储 数据位来存储需要隐藏的数据,解决了目前利用图像隐藏数据的方法会明显增加图像的数 据量,且易被16进制编辑器直接发现尾部隐藏的数据的问题;达到了隐藏了数据后的图像 的数据量保持不变,且隐藏的数据不易被发现的效果。
[0059] 请参考图2A,其示出了本发明另一实施例提供的基于位图的数据隐藏方法的方法 流程图。该方法可以用于终端中或服务器中,本实施例以该方法应用于终端中来举例说明。 该方法可以包括如下几个步骤:
[0060] 步骤201,读取位图的数据区,数据区存储有位图中各个像素点的颜色信息;
[0061] 位图的数据文件主要包括:文件头、位图信息头和数据区等部分,位图的数据区 存储有位图中每个像素点的颜色信息,终端可以读取位图中的这些信息。
[0062] 步骤202,检测数据区中用于存储单个像素点的颜色信息的二进制位数是否达到 预定位数;
[0063] 因为采用24位以下方式进行存储的伪彩色位图,数据区表示的并非实际像素点 的颜色信息,而是调色板索引值,不适于本实施例隐藏数据的方式且所能隐藏数据量太小, 故而本实施例中只使用24位及以上的真彩色位图来隐藏数据。
[0064] 为此,终端在读取到一个位图的数据区之后,需要去检测这个位图的数据区中用 于存储单个像素点的颜色信息的二进制位数是否达到预定位数。本实施例中以该预定位数 为24位来举例说明。
[0065] 也即,对于位图中的单个像素点的颜色信息,可能会采用1位、4位、8位、16位、24 位和32位等方式进行存储。终端可以检测当前位图中的单个像素点的颜色信息是否采用 24位方式进行存储或者32位方式进行存储;如果当前位图中的单个像素点的颜色信息采 用24位方式进行存储或者32位方式进行存储,则进入步骤203 ;如果当前位图中的单个像 素点的颜色信息采用1位、4位、8位或者16位方式进行存储,则终止流程。
[0066] 步骤203,如果用于存储单个像素点的颜色信息的二进制位数达到预定位数,则将 数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间作为数据存储空 间;
[0067] 终端在检测出当前位图为真彩色位图后,终端将数据区中用于存储颜色信息的各 个字节中从最高位开始的η个二进制位所组成的空间作为数据存储空间,η为正整数。本 实施例中以η = 3来举例说明。
[0068] 结合参考图2B,设当前位图中单个像素点的颜色信息采用24位RGB方式进行存 储,则终端将每个颜色信息所占用8位字节中的前3位作为数据存储空间。
[0069] 步骤204,计算数据存储空间的可存储数据量;
[0070] 以当前位图的分辨率为X*Y为例,当前位图包括X*Y个像素点,每个像素点包括3 个颜色信息,每个颜色信息抽取3位作为数据存储空间,则该数据存储空间的可存储数据 量为:Χ*Υ*3*3/8字节。
[0071] 步骤205,检测需要隐藏的数据的数据量是否大于可存储数据量;
[0072] 然后终端检测需要隐藏的数据的数据量是否大于数据存储空间的可存储数据量。 若检测结果为大于,则进入步骤206 ;若检测结果为不大于,则进入步骤207。
[0073] 步骤206,若检测结果为所需要隐藏的数据的数据量大于可存储数据量,则根据可 存储数据量从需要隐藏的数据中截取一部分数据作为在位图中需要隐藏的数据;
[0074] 若检测结果为大于,则终端从需要隐藏的数据中截取一部分数据作为在位图中需 要隐藏的数据,截取出的一部分数据的数据量大小等于或者小于可存储数据量的大小。
[0075] 步骤207,将需要隐藏的数据写入数据存储空间。
[0076] 终端将需要隐藏的数据写入数据存储空间。本步骤可以包括如下子步骤:
[0077] 1、终端将数据存储空间中的各个二进制位清零;
[0078] 2、终端将需要隐藏的数据按顺序写入数据存储空间。
[0079] 综上所述,本实施例提供的基于位图的数据隐藏方法,通过使用位图本身的存储 数据位来存储需要隐藏的数据,解决了目前利用图像隐藏数据的方法会明显增加图像的数 据量,且易被16进制编辑器直接发现尾部隐藏的数据的问题;达到了隐藏了数据后的图像 的数据量保持不变,且隐藏的数据不易被发现的效果。
[0080] 需要补充说明的是,通过上述方法将数据隐藏在位图中后,位图中部分像素点的 颜色会发生改变。通常来讲,这种变化对于人眼来讲并不明显。但是如果这种变化非常明 显,可以将上述实施例中的η位二进制位减少后重新确定数据存储空间,比如减少为η-1位 后重新确定数据存储空间。该过程可以由技术人员来执行,也可以由终端来执行。
[0081] 当上述过程由终端来执行时,本实施例还优选包括如下步骤:
[0082] 步骤208,检测写入数据后的位图与未写入数据的位图之间的颜色差异程度是否 超过预定阈值;
[0083] 终端可以检测写入数据后的位图与未写入数据的位图之间的颜色差异程度是否 超过预定阈值。
[0084] 终端在检测两个位图之间的颜色差异程度时,一种检测方法为利用RGB加权色差 公式检测颜色差异,本实施例所用的RGB加权色差公式可以为:
[0085] D = Jwr(ri - η)2 + wg{gL - gj)2 + wb(bi - h^f
[0086] 其中D为颜色差异程度,、wg,wb为根据人眼对于红、绿、蓝三色敏感程度的不同 而定的加权系数,本实施例可以采用(3、4、2)作为此加权系数,其中为写入数据后 位图的像素点的R、G、B的值,gp h为写入数据前位图的像素点的R、G、B的值,用此公 式可以计算出每一个像素点颜色变化的色差值,之后可根据此色差值计算位图的写入数据 后整体改变的平均颜色差异程度;利用此公式计算最大颜色差异程度,即计算(〇、〇、〇)和 (255、255、255)两点的色差值;本实施例可以以最大颜色差异程度的20%为预定阈值,即 如果平均颜色差异程度大于此预定阈值,则需要根据情况减小每个字节所占用的二进制位 数。
[0087] 步骤209,若检测出颜色差异程度超过了预定阈值,则重新将数据区中用于存储颜 色信息的各个字节中的n-1位二进制位所组成的空间作为数据存储空间;
[0088] 终端重新将数据区中用于存储颜色信息的各个字节中的n-1位二进制位所组成 的空间作为数据存储空间。比如,η = 3,则终端将η减少为2位后,重新进入步骤204。又 比如,η = 2,则终端将η减少为1位后,重新进入步骤204。
[0089] 通过上述步骤208和步骤209,本实施例通过计算要隐藏的数据写入图片前后,图 片色差的变化是否超过阈值;达到了在图片变化不明显的前提下,将数据隐藏到图片中的 效果,进而减小了隐藏的数据被发现的几率。
[0090] 还需要补充说明的是,本实施例在将需要隐藏的数据写入数据存储空间前,会可 以将需要隐藏的数据进行压缩处理,对数据压缩可以减小数据大小,增加本实施例所能隐 藏的数据量;如要隐藏的数据为文本格式或者Office格式等明码格式,对其压缩可以规避 敏感词过滤;压缩数据还可以使提取数据时更加方便。
[0091] 请参考图3,其示出了本发明一个实施例提供的基于位图的数据隐藏装置的结构 方框图。该基于位图的数据隐藏装置可以通过软件、硬件或者两者的结合成为终端或服务 器的全部或者一部分。该基于位图的数据隐藏装置,包括:
[0092] 数据读取模块310、空间确定模块320、数据写入模块330 ;
[0093] 数据读取模块310,用于读取位图的数据区,数据区存储有位图中各个像素点的颜 色信息;
[0094] 空间确定模块320,用于将数据读取模块310读取的数据区中用于存储颜色信息 的各个字节中的部分二进制位所组成的空间作为数据存储空间;
[0095] 数据写入模块330,用于将需要隐藏的数据写入空间确定模块320确定的数据存 储空间中。
[0096] 综上所述,本实施例提供的基于位图的数据隐藏装置,通过使用位图本身的存储 数据位来存储需要隐藏的数据,解决了目前利用图像隐藏数据的方法会明显增加图像的数 据量,且易被16进制编辑器直接发现尾部隐藏的数据的问题;达到了隐藏了数据后的图像 的数据量保持不变,且隐藏的数据不易被发现的效果。
[0097] 请参考图4,其示出了本发明另一个实施例提供的基于位图的数据隐藏装置的结 构方框图。该基于位图的数据隐藏装置可以通过软件、硬件或者两者的结合成为终端或服 务器的全部或者一部分。该基于位图的数据隐藏装置包括:数据读取模块310、空间确定模 块320、数据写入模块330 ;
[0098] 数据读取模块310,用于读取位图的数据区,数据区存储有位图中各个像素点的颜 色信息;
[0099] 空间确定模块320,用于将数据读取模块读取的数据区中用于存储颜色信息的各 个字节中的部分二进制位所组成的空间作为数据存储空间;
[0100] 数据写入模块330,用于将需要隐藏的数据写入空间确定模块320确定的数据存 储空间中,终端或服务器将需要隐藏的数据写入数据存储空间。
[0101] 可选地,数据写入模块330还包括:数据擦除单元332和数据写入单元334 ;
[0102] 数据擦除单元332,用于将数据存储空间中的各个二进制位清零;
[0103] 数据写入单元334,用于将需要隐藏的数据按顺序写入数据存储空间。
[0104] 可选的,所述装置,还包括:
[0105] 位数检测模块340,用于检测数据区中用于存储单个像素点的颜色信息的二进制 位数是否达到预定位数;
[0106] 空间确定模块320,用于如果位数检测模块340的检测结果为用于存储单个像素 点的颜色信息的二进制位数达到预定位数,则执行将数据区中用于存储颜色信息的各个字 节中的部分二进制位所组成的空间作为数据存储空间的步骤。
[0107] 可选的,空间确定模块320,用于将数据区中用于存储颜色信息的各个字节中从最 高位开始的连续η位二进制位所组成的空间作为数据存储空间,η为正整数。
[0108] 可选的,所述装置,还包括:差异检测模块350和空间重确模块360 ;
[0109] 差异检测模块350,用于检测写入数据后的位图与未写入数据的位图之间的颜色 差异程度是否超过预定阈值;
[0110] 空间重确模块360,用于检测出颜色差异程度超过了预定阈值时,重新将数据读取 模块读取的数据区中用于存储颜色信息的各个字节中的η-1个二进制位所组成的空间作 为数据存储空间;再利用数据写入模块330将需要隐藏的数据写入空间重确模块360确定 的数据存储空间中。
[0111] 可选的,所述装置,还包括:容量计算模块370和容量检测模块380 ;
[0112] 容量计算模块370,用于计算数据存储空间的可存储数据量;
[0113] 容量检测模块380,用于检测需要隐藏的数据的数据量是否大于可存储数据量; 若检测结果为需要隐藏的数据的数据量大于可存储数据量,则根据可存储数据量从需要隐 藏的数据中截取一部分数据作为在位图中需要隐藏的数据。
[0114] 综上所述,本实施例提供的基于位图的数据隐藏装置,通过使用位图本身的存储 数据位来存储需要隐藏的数据,解决了目前利用图像隐藏数据的方法会明显增加图像的数 据量,且易被16进制编辑器直接发现尾部隐藏的数据的问题;达到了隐藏了数据后的图像 的数据量保持不变,且隐藏的数据不易被发现的效果。
[0115] 需要补充说明的是,本实施例通过计算要隐藏的数据写入图片前后,图片色差的 变化是否超过阈值;达到了在图片变化不明显的前提下,将数据隐藏到图片中的效果,进而 减小了隐藏的数据被发现的几率。
[0116] 需要补充说明的是,本实施例在将要隐藏的数据写入数据存储空间前,会对要隐 藏的数据进行压缩处理,对数据压缩可以减小数据大小,增加本实施例所能隐藏的数据量; 如要隐藏的数据为文本格式或者Office格式等明码格式,对其压缩可以规避敏感词过滤; 压缩数据还可以使提取数据时更加方便。
[0117] 请参考图5,其示出了本发明一个实施例提供的终端或服务器的结构示意图。终 端或服务器500包括中央处理单元(CPU) 501、包括随机存取存储器(RAM) 502和只读存储 器(ROM) 503的系统存储器504,以及连接系统存储器504和中央处理单元501的系统总线 505。终端或服务器500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出 系统(I/O系统)506,和用于存储操作系统513、应用程序514和其他程序模块515的大容 量存储设备507。
[0118] 基本输入/输出系统506包括有用于显不信息的显不器508和用于用户输入信息 的诸如鼠标、键盘之类的输入设备509。其中显示器508和输入设备509都通过连接到系统 总线505的输入输出控制器510连接到中央处理单元501。基本输入/输出系统506还可 以包括输入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他 设备的输入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出 设备。
[0119] 大容量存储设备507通过连接到系统总线505的大容量存储控制器(未示出)连 接到中央处理单元501。大容量存储设备507及其相关联的计算机可读介质为终端或服务 器500提供非易失性存储。也就是说,大容量存储设备507可以包括诸如硬盘或者CD-ROM 驱动器之类的计算机可读介质(未示出)。
[0120] 不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机 存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的 任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括 RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带 盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质 不局限于上述几种。上述的系统存储器504和大容量存储设备507可以统称为存储器。
[0121] 根据本发明的各种实施例,终端或服务器500还可以通过诸如因特网等网络连接 到网络上的远程计算机运行。也即终端或服务器500可以通过连接在系统总线505上的网 络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型 的网络或远程计算机系统(未示出)。
[0122] 所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于 存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的基于位图的数据 隐藏方法的指令。
[0123] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0124] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0125] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种基于位图的数据隐藏方法,其特征在于,所述方法包括: 读取位图的数据区,所述数据区存储有所述位图中各个像素点的颜色信息; 将所述数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间作为 数据存储空间; 将需要隐藏的数据写入所述数据存储空间中。
2. 根据权利要求1所述的方法,其特征在于,所述将所述数据区中用于存储颜色信息 的各个字节中的部分二进制位所组成的空间作为数据存储空间之前,还包括: 检测所述数据区中用于存储单个像素点的颜色信息的二进制位数是否达到预定位 数; 如果用于存储单个像素点的颜色信息的二进制位数达到所述预定位数,则执行所述将 所述数据区中用于存储颜色信息的各个字节中的部分二进制位所组成的空间作为数据存 储空间的步骤。
3. 根据权利要求1所述的方法,其特征在于,所述将所述数据区中用于存储颜色信息 的各个字节中的部分二进制位所组成的空间作为数据存储空间,包括: 将所述数据区中用于存储颜色信息的各个字节中从最高位开始的连续η位二进制位 所组成的空间作为数据存储空间,η为正整数。
4. 根据权利要求3所述的方法,其特征在于,所述将需要隐藏的数据写入所述数据存 储空间中之后,还包括: 检测写入所述数据后的位图与未写入所述数据的位图之间的颜色差异程度是否超过 预定阈值; 若检测出所述颜色差异程度超过了所述预定阈值,则重新将所述数据区中用于存储颜 色信息的各个字节中从最高位开始的连续η-1位二进制位所组成的空间作为数据存储空 间,并将所述需要隐藏的数据写入所述数据存储空间。
5. 根据权利要求1至4任一所述的方法,其特征在于,所述将需要隐藏的数据写入所述 数据存储空间中之前,还包括: 计算所述数据存储空间的可存储数据量; 检测所述需要隐藏的数据的数据量是否大于所述可存储数据量; 若检测结果为所述需要隐藏的数据的数据量大于所述可存储数据量,则根据所述可存 储数据量从所述需要隐藏的数据中截取一部分数据作为在所述位图中需要隐藏的数据。
6. -种基于位图的数据隐藏装置,其特征在于,所述装置包括: 数据读取模块,用于读取位图的数据区,所述数据区存储有所述位图中各个像素点的 颜色信息; 空间确定模块,用于将所述数据读取模块读取的所述数据区中用于存储颜色信息的各 个字节中的部分二进制位所组成的空间作为数据存储空间; 数据写入模块,用于将需要隐藏的数据写入所述空间确定模块确定的所述数据存储空 间中。
7. 根据权利要求6所述的装置,其特征在于,所述装置,还包括: 位数检测模块,用于检测所述数据读取模块读取的所述数据区中用于存储单个像素点 的颜色信息的二进制位数是否达到预定位数; 所述空间确定模块,用于如果所述位数检测模块的检测结果为用于存储单个像素点的 颜色信息的二进制位数达到所述预定位数,则执行所述将所述数据区中用于存储颜色信息 的各个字节中的部分二进制位所组成的空间作为数据存储空间的步骤。
8. 根据权利要求6所述的装置,其特征在于, 所述空间确定模块,将所述数据区中用于存储颜色信息的各个字节中从最高位开始的 连续η位二进制位所组成的空间作为数据存储空间,η为正整数。
9. 根据权利要求8所述的装置,其特征在于,所述装置,还包括:差异检测模块和空间 重确模块; 所述差异检测模块,用于检测所述数据写入模块写入所述数据后的位图与未写入所述 数据的位图之间的颜色差异程度是否超过预定阈值; 所述空间重确模块,用于检测出所述颜色差异程度超过了所述预定阈值时,重新将所 述数据读取模块读取的所述数据区中用于存储颜色信息的各个字节中从最高位开始的的 连续η-1个二进制位所组成的空间作为数据存储空间;再利用所述数据写入模块将所述需 要隐藏的数据写入所述空间重确模块确定的所述数据存储空间中。
10. 根据权利要求6至9任一所述的装置,其特征在于,所述装置,还包括:容量计算模 块和容量检测模块; 所述容量计算模块,用于计算所述数据存储空间的可存储数据量; 所述容量检测模块,用于检测所述需要隐藏的数据的数据量是否大于所述可存储数据 量;若检测结果为所述需要隐藏的数据的数据量大于所述可存储数据量,则根据所述可存 储数据量从所述需要隐藏的数据中截取一部分数据作为在所述位图中所述需要隐藏的数 据。
【文档编号】G06F21/60GK104112100SQ201410299236
【公开日】2014年10月22日 申请日期:2014年6月26日 优先权日:2014年6月26日
【发明者】余莹 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1