zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

基于24位bmp图片数据区隐写的实现

数据 实现 基于 图片 24 BMP
2023-09-14 09:01:06 时间
1,关于数据区隐写

数据区隐写,即将数据写入到数据区中。相比文件外壳隐写和保留区隐写,更为隐蔽,隐藏的信息容量相对较大。在数据区隐写会造成图像变化,所以需要控制写入方式,以及改写量。使得在普通肉眼难以辨别的更改中实现数据的隐藏。至于其他的隐写方法请看:简单信息隐藏技术的实现与讨论

2,24位bmp图像简介

要在bmp图像进行数据区隐写,必须要知道它的数据结构。否则,可能会破坏图像。 这是bmp的文件结构。

    位图文件头(bitmap-file header)包含了图像类型、图像大小、图像数据存放地址和两个保留未使用的字段。(14字节)     位图信息头(bitmap-information header)(40字节)     彩色表/调色板(color table)[24位bmp图没有调色板]     位图数据(bitmap-data)

24位bmp图像数据存储的是实际的颜色数据,每个像素用3字节表示,分别是红绿蓝。文件头和信息头共占了54个字节。 24位bmp图像数据结构

3.程序设计思路

将bmp和txt读入之后,其实就是两个字符串。接下来要做的就是设计一个算法让它们合并。 考虑到如果直接替换数据区字符。会使像素点有巨大改变。所以,每个字符我只改末尾的一个bit,这样一来,像素点的变化会非常小,几乎没有区别。而且,我尽可能让更改的bit分散在数据区。为了方便提取,我在保留区记录了两个值,他们的异或值就是数据区隐藏信息字节的间隔值。


    for(int i=py,j=0;j!=tl;++j)          //把隐藏的信息转化成bit,写入到间隔的字节的最后一位。
 5.总结

这是一个很简单的图片数据区隐写程序,基于24位bmp图像。基本实现了需要的功能,分散的写入使得肉眼难以发现异常,其次,无需原图也可以提取信息。

转载请注明:旅途@KryptosX » 基于24位bmp图片数据区隐写的实现


【图片操作】提取GIF的图片帧 gif是我们日常生活中常用的一种图片,它介于视频和图片之间。我们可以用图片的内存体验到一些视频的感觉。但是有时候我们会想把gif的图片全部提取出来,今天我们就来实现一下这个操作。
平时写博客, 为了效果的生动形象, 经常需要嵌入一些gif图片, 但mac的retina显示器分辨率高, 录制出的gif图片往往很大,同时简书限制gif图片不能超过10M, 我在网上查了很多调整gif尺寸的方法, 大多是一些在线转换的方法, 但而且...