用c语言教你做个平台无关性的种图

相信很多在百度贴吧的用户经常会遇到类似这样的情况,某君本着牺牲小我教育大家提高认知以艺术和钻研的原则和精神在贴吧内贴了一张图片,然后他会很负责任地告诉你,这不是一张普通的图片,其实它有一种神奇的功能,当你使用右键保存到你的硬盘上时再将后缀改成.rar(或者是.zip)之后再解压缩,这时你就会看见你想要的东西,当然,一般人一定会认为这是个疯子,或者是在买萌,一笑而过(难道我会告诉你我曾经就是这样的吗),但当有一天你本着好奇之心去验证这一切,并收到了一份可能让你日思夜想但却得不到的神秘礼物时,你再也不相信爱情了,原来这一切都特玛是真的!,好吧,我就不说这是我的经历了,起初我也不相信这种不靠谱的东西,特别是在一个不靠谱的贴吧里,所以一直以来我都有过这种好奇心去右键,直到某天在一个相对来说靠谱点技术性点的贴吧看到有人在发这个东西的时候我于是开始了好奇心,事实上证明,只有你想不到的,没有你做不到的(所以我想说的是,其实虽然我有过类似的经历,但我并没有得到什么神秘的礼物,原因很简单,至于是什么,你自己去想吧,想不出来给我到厕所面壁去!因为仅仅是类似而已),当时我也觉得好神奇,后来某人说其实是将隐藏的内容放到了图片文件的后面,而这时图片文件的内容虽然已经被改变但是图片的头,中,”尾”,的存储格式并没有改变,所以图片还可以正常显示,当后缀名被改掉了以后,系统会以一个指定的程序加载它比如WinRar之类的东西,好了有了这个思路的话,做起来就非常的容易了,可是我标题为什么要加上平台无关性呢?貌似很唬人的样子,其实网上有这样的教程,貌似还很多,但我没看过,我是真的没看过,根据一部分人的说法在windows下应该是采用了copy这个命令的某些参数的功能达到了目的,而在另一种平台上则需要另外一个命令或程序来完成同样的效果,所以我就不采用这种方法了,既然知道了原理,那么对于我这个半吊子c语言自学者来说当然要自己做这样的程序了,好了下面直接给程序

首先你得先编译它,好吧,这个不用我废话了吧,那我说说该怎么用吧,其实对于任何一个学习过c语言文件相关操作的人来说这简直就是一个垃圾到了极点,没有任何技术含量的程序,它的功能很单纯,那就是将参数中指定的文件追加到另一个文件末尾,而且程序中我仅仅是对本程序功能运行所需要的参数个数做了错误检查,也就是说使用它你除了可以不考虑在参数个数错误的情况外,其它的你必需保证你知道自己在做什么,由于我仅仅只是想完成某种功能,所以没有加太多的错误检查机制,如果你想要把它做得标准化一点或者是通用化,简单化一点的话你加点东西进去我没有任何意见,但是核心代码就是这些了,然后我来说说用的方法
首先,我们找到一个想要做为图种的图片,然后我们复制一份,比如复制成1.jpg,为什么要复制一份呢?从我的程序中可以看出,我并没有保存你的第一个参数的完整性,所以你得有个备份,虽然这样破坏了你的第一个参数是可以还原的,然后我们找到我们想要隐藏在图片里的文件,这个文件不要太大,否则可能传上网上后再下载回来数据会有毁坏的危险,所以叫图种,然后我们把这个想要隐藏进图片的文件压缩成.zip格式或者是.rar格式,我这里使用zip格式,比如我们压缩后的文件叫1.zip,然后比如我们的程序编译完成后叫add(windows下应该是add.exe),然后我们就可以这样来使用程序
./add 1.jpg 1.zip
这样以后如果不出意外,1.jpg就是已经做好的图种了,不相信你可以打开它看看,它可以正常显示,而且还是原来的图片,然后你再把它改成2.zip时再解压或者是使用解压软件进行浏览你就会发现在里面的文件,不知道这个东西在这里能不能用,我发个图试试看,如果可以用的话,那么你下载回去的图片将包含本程序的源文件
来张美女图片吸引一下大家的眼球


记住,第一个参数(其实是第二个参数)一定要是图片文件,第二个参数一定要是压缩的文件,然后改回来的时候一定要是压缩文件名的后缀,比如我用的是zip如果你改成rar的话可能就会出现数据错误而不能用了

–阅读次数(24)

发表评论

电子邮件地址不会被公开。

*