相信看过Andrew那本很经典的《计算机网络》都会记得第N章(N是多少我忘记了……)里面提到的在一幅图像里面隐藏了一本《莎士比亚》全集的数据。
这种代码在网上已经是很常见的了,不过最近因为研究着拆游戏的cg立绘之类的东西就学习了一下BMP图像的格式就想到一个不同隐藏方法。
网上的代码大多都是利用每个像素里面颜色后面几位来存储要隐藏的数据,这样的话在颜色比较单一的情况下对图像的影响是十分明显的。而我的代码中是将24位的图像转换为32位图像后在alpha通道的位置写入数据。
在24位位图中,每个像素用三个字节存储,而32位位图则是4个字节,除了RGB通道外,还有多出来的一个字节是alpha通道。alpha通道是用来存储透明度的信息的,例如有两幅图片,一幅是风景另外一幅是一间房子,房子上有个玻璃窗。按照常理来说,当两幅图像重叠的时候可以透过玻璃看到外面的景物的,而ALPHA混合就是用来实现这个功能。Alpha混合根据图像的alpha通道的值来计算两幅图像重叠后那一点的色彩值。所以修改这个值在位图上是看不出改变的。
还有一点要注意的是位图文件里面每一行像素数据的字节数一定要是4的倍数,所以在位图中每隔位图宽*3个字节数会有几个0字节是用来填充的,所以转换的时候要跳过这几个字节。
而位图文件头和信息头的修改可以直接参考MSDN相关说明。
程序和源码见附件。很久没用ASM写程序,用来练一下手,代码写得有点难看orz
分享到:
相关推荐
本项目聚焦于24位BMP位图中的信息隐藏和读取,这涉及到数字图像处理、位运算以及文件I/O等多个知识点。 首先,24位BMP位图每像素由红、绿、蓝三种颜色的8位组成,共24位。这意味着每个像素可以表示16,777,216种颜色...
信息隐藏是一种技术,用于在看似普通的数据中嵌入秘密信息,通常用于版权保护、数字水印以及安全通信等领域。BMP(Bitmap)图像文件格式是信息隐藏的常见载体,因为它不包含任何压缩,每个像素的数据都可以直接访问...
在 BMP 图像文件中隐藏数据是一种常见的数据隐写术(Steganography)方法,它利用了 BMP 文件格式的特性来嵌入额外的信息。BMP,全称 Bitmap,是微软公司开发的一种位图图像格式,广泛应用于Windows操作系统。下面将...
在IT领域,信息隐藏是一种重要的安全技术,它涉及在数据中嵌入秘密信息而不改变其外观或功能。在这个“基于24位bmp位图的信息隐藏编程实例”中,我们将探讨如何利用位图图像来实现这一目标。位图,尤其是24位色深的...
BMPMAN 是一款独特的工具,它允许用户在24位色的.bmp位图图像文件中隐藏其他文件,这种技术通常被称为数据隐写术或隐藏存储。数据隐写术是一种信息安全技术,用于在看似普通的文件(如图片)中嵌入秘密信息,以实现...
2. **位平面选择**:选择BMP图像的特定位平面,比如红色、绿色或蓝色通道中的某些位,作为隐藏数据的载体。 3. **数据嵌入**:根据二进制文件的内容,调整图像的对应像素颜色值。这个过程需要确保调整后的像素变化对...
BMP图像信息隐藏是一种技术,主要用于在BMP位图文件中嵌入秘密信息,这通常用于数据安全、版权保护或者隐写术。BMP是Bitmap的缩写,是一种未经压缩的图像文件格式,由Microsoft开发,广泛应用于Windows操作系统。在...
"在BMP文件内部隐藏其他文件"这一技术就是其中的一种,它允许我们将一个或多个文件嵌入到一个BMP(位图图像)文件的元数据或未使用的像素数据中,实现数据的隐蔽存储。 BMP文件格式是一种常见的图像文件格式,它以...
在给定的压缩包文件中,"用位图隐藏文件"的程序可能包含了一个能够将秘密文件嵌入到位图图像中的应用程序。下面将详细解释这种技术的工作原理及其相关知识点。 位图图像由像素组成,每个像素都有一个颜色值,通常由...
在这个案例中,重点是将一个可执行文件(ExE)嵌入到一个位图(BMP)文件中,使得外行人无法察觉到其中隐藏的内容。 首先,我们要理解BMP文件格式。BMP是一种常见的位图图像文件格式,它存储像素数据和元信息,如...
数字水印分为可见水印和不可见水印,前者对肉眼可见,而后者则隐藏在数据的噪声中,不影响原始内容的观看体验。 接下来,我们关注"BMP位图"。BMP是一种无损的图像文件格式,由微软开发,用于存储Windows和OS/2操作...
在这个压缩包中,重点是“BMP位图格式(灰度)”,这意味着我们将探讨的是基本的位图图像格式以及在灰度图像上的数字水印应用。 BMP(Bitmap)是一种无损的、非压缩的图像文件格式,由微软开发并广泛应用于Windows...
- **像素偏移**:在像素数据中插入额外的行或列,这些行或列包含了隐藏的信息。 - **颜色空间转换**:将图像从一种颜色空间转换到另一种,如从RGB到HSI,然后在转换过程中嵌入信息。 3. **加密**:为了增加隐藏...
3. **嵌入数据**:在BMP文件的像素数据中找到合适的位置嵌入TXT文件的数据。通常会选择不影响视觉质量的位置,例如在图像的低阶位或者在图像的边缘区域。可以使用位操作(如位移、与、或、异或)将TXT文件的字节与...
在计算机图形学中,BMP(Bitmap)是一种常见的位图文件格式,用于存储像素数据。在处理BMP图像时,有时我们...在处理BMP位图时,对位平面的操作提供了极大的灵活性和创造力,是图像处理和数字信号处理领域的重要工具。
4. **信息嵌入**:将加密后的信息分割成单个位,并根据策略插入到BMP文件的像素数据中。 5. **保存修改**:最后,保存修改后的BMP文件,隐藏信息就完成了。 6. **解密与提取**:要提取隐藏的信息,需要读取BMP文件,...
BMP(Bitmap)是一种常见的位图格式,它允许我们以二进制形式存储图像数据,这为信息隐藏提供了可能性。在描述中提到的"LSB(Least Significant Bit,最低有效位)算法"是信息隐藏的一种常用方法,它通过修改图像...
在LSB方法中,隐藏信息被嵌入到原始BMP图像的数据位中,通常不会显著改变图像的视觉质量,从而达到信息的隐蔽传输。 LSB信息隐藏的基本原理是利用图像像素值的最低位(LSB)来存储秘密信息。每个像素可以看作是多个...
### VC++实现BMP位图打开和显示:深入解析与实践 #### 一、课程背景与目标 在《数字图像处理》课程中,通过实践项目加深对C++编程语言的理解和应用,尤其聚焦于图像处理领域。本次实验旨在让学生掌握如何使用C++...