这类型的代码在网上已经是很常见的了,不过是自己想要动手来实现一下(我是菜鸟)
不过网上的代码大多都是利用每个像素里面颜色后面几位来存储要隐藏的数据,这样的话在颜色比较单一的情况下对图像的影响是十分明显的。而我的代码中是将24位的图像转换为32位图像后在alpha通道的位置写入数据。
在24位位图中,每个像素用三个字节存储,而32位位图则是4个字节,除了RGB通道外,还有多出来的一个字节是alpha通道。alpha通道是用来存储透明度的信息的,所以即使是修改这个值在位图上是看不出改变的。
还有一点要注意的是位图文件里面每一行像素数据的字节数一定要是4的倍数,所以在位图中每隔位图宽*3个字节数会有几个0字节是用来填充的,所以转换的时候要跳过这几个字节。
代码见附件

上传的附件 bin.rar