Watermark

所属分类:图形图像处理
开发工具:Asm
文件大小:59KB
下载次数:19
上传日期:2007-12-12 09:55:38
上 传 者应用商店
说明:  由于工作的内容主要是图像处理,ocr等方面的工作,前端时间应客户要求编写一个图像水印软件,要求可以把一段文字,一副图片隐藏到一副图片中。于是在网上找到了一个算法,偶把它用汇编写出来。 将信息嵌入BMP文件的步骤为: I.将待隐藏信息转化为二进制数据码流; II.将BMP文件图像数据部分的每个字节的奇偶性与上述二进制数码流进行比较; III.通过调整字节最低位的“0”或“1”,改变字节的奇偶性,使之与上述二进制数据流一致,即将信息嵌入到24位BMP图像中。
(err)

文件列表:
watermark\watermarkdll\watermarkdll.rap (1962, 2007-11-26)
watermark\watermarkdll\watermarkdll.obj (1158, 2007-10-11)
watermark\watermarkdll\watermarkdll.Inc (259, 2007-03-09)
watermark\watermarkdll\watermarkdll.Def (63, 2007-03-09)
watermark\watermarkdll\watermarkdll.dll (3072, 2007-10-11)
watermark\watermarkdll\watermarkdll.lib (2672, 2007-10-11)
watermark\watermarkdll\watermarkdll.exp (617, 2007-10-11)
watermark\watermarkdll\watermarkdll.Asm (5693, 2007-03-14)
watermark\WatermarkDecode\WatermarkApp.rap (2250, 2007-03-19)
watermark\WatermarkDecode\WatermarkApp.Asm (7970, 2007-03-16)
watermark\WatermarkDecode\WatermarkApp.Inc (2074, 2007-03-19)
watermark\WatermarkDecode\WatermarkApp.Rc (35, 2007-03-09)
watermark\WatermarkDecode\WatermarkApp.dlg (4918, 2007-03-16)
watermark\WatermarkDecode\WatermarkApp.obj (5229, 2007-03-19)
watermark\WatermarkDecode\WatermarkApp.idb (16322, 2007-03-11)
watermark\WatermarkDecode\watermarkdll.dll (3072, 2007-03-14)
watermark\WatermarkDecode\watermarkdll.Inc (259, 2007-03-09)
watermark\WatermarkDecode\watermarkdll.lib (2672, 2007-03-14)
watermark\WatermarkDecode\WatermarkApp.RES (728, 2007-03-16)
watermark\WatermarkDecode\Res\WatermarkAppDlg.Rc (1421, 2007-03-16)
watermark\WatermarkEncode\WatermarkApp.rap (2231, 2007-03-27)
watermark\WatermarkEncode\Res\WatermarkAppDlg.Rc (1421, 2007-03-16)
watermark\WatermarkEncode\Res\WatermarkAppDlg.aps (1660, 2007-03-14)
watermark\WatermarkEncode\WatermarkApp.Asm (8348, 2007-03-21)
watermark\WatermarkEncode\WatermarkApp.Inc (1873, 2007-03-12)
watermark\WatermarkEncode\WatermarkApp.Rc (35, 2007-03-09)
watermark\WatermarkEncode\WatermarkApp.dlg (4918, 2007-03-16)
watermark\WatermarkEncode\WatermarkApp.obj (4771, 2007-03-22)
watermark\WatermarkEncode\WatermarkApp.exe (5120, 2007-03-22)
watermark\WatermarkEncode\WatermarkApp.RES (728, 2007-03-16)
watermark\WatermarkEncode\WatermarkApp.aps (1804, 2007-03-14)
watermark\WatermarkEncode\WatermarkApp.idb (16322, 2007-03-11)
watermark\WatermarkEncode\watermarkdll.dll (3072, 2007-03-14)
watermark\WatermarkEncode\watermarkdll.Inc (259, 2007-03-09)
watermark\WatermarkEncode\watermarkdll.lib (2672, 2007-03-14)
watermark\WatermarkEncode\encode.exe (8192, 2007-05-11)
watermark\WatermarkDecode\Res (0, 2007-03-13)
watermark\WatermarkEncode\Res (0, 2007-03-09)
watermark\watermarkdll (0, 2007-03-07)
watermark\WatermarkDecode (0, 2007-03-13)
... ...

由于工作的内容主要是图像处理,ocr等方面的工作,前端时间应客户要求编写一个图像水印软件,要求可以把一段文字,一副图片隐藏到一副图片中。于是在网上找到了一个算法,偶把它用汇编写出来。 算法如下: 一幅24位BMP图像,由54字节的文件头和图像数据部分组成,其中文件头不能隐藏信息,从第55字节以后为图像数据部分,可以隐藏信息。图像数据部分是由一系列的8位二进制数所组成,由于每个8位二进制数中“1”的个数或者为奇数或者为偶数,约定:若一个字节中“1”的个数为奇数,则称该字节为奇性字节,用“1”表示;若一个字节中“1”的个数为偶数,则称该字节为偶性字节,用“0”表示。我们用每个字节的奇偶性来表示隐藏的信息。 举例:设一段24位BMP文件的数据为:01100110,00111100,10001111,00011010,00000000, 10101011,00111110,10110000,则其字节的奇偶排序为:0,0,1,1,0,1,1,1.现在需要隐藏信息79,由于79转化为 8位二进制为01001111,将这两个数列相比较,发现第2,3,4,5位不一致,于是对这段24位BMP文件数据的某些字节的奇偶性进行调制,使其与 79转化的8位二进制相一致: 第2位:将00111100 变为00111101,则该字节由偶变为奇; 第3位:将10001111变为10001110,则该字节由奇变为偶; 第4位:将00011010变为00011011,则该字节由奇变为偶; 第5位:将00000000变为00000001,则该字节由偶变为奇; 经过这样的调制,此24位BMP文件数据段字节的奇偶性便与79转化的8位二进制数完全相同,这样,8个字节便隐藏了一个字节的信息。 综上所述,将信息嵌入BMP文件的步骤为: I.将待隐藏信息转化为二进制数据码流; II.将BMP文件图像数据部分的每个字节的奇偶性与上述二进制数码流进行比较; III.通过调整字节最低位的“0”或“1”,改变字节的奇偶性,使之与上述二进制数据流一致,即将信息嵌入到24位BMP图像中。 3.2 信息的提取 信息提取是把隐藏的信息从伪装媒体中读取出来,其过程和步骤正好与信息嵌入相反: I .判断BMP文件图像数据部分每个字节的奇偶性,若字节中“1”的个数为偶数,则输出“0”;若字节中“1”的个数为奇数,则输出“1”; II.每判断8个字节,便将输出的8位数组成一个二进制数(先输出的为高位); III.经过上述处理,得到一系列8位二进制数,便是隐藏信息的代码,将代码转换成文本,或图像,或声音,就是隐藏的信息。

近期下载者

相关文件


收藏者