由于我们把不同的文件合并成了一个文件,因为二进制文件的特殊性,当我们用编程语言对合并中的文件进行逐字节读取时,并不知道某个段落的文件数据在第几个字节结束所以我们需要文件索引头,它就像现实文学书的目录。(类比)
对于已经塞入文件的png或ogg二进制数据需要使用第三方开源库进行解码,这对于新手来说比较困难(可能需要自己编译),所以我们这里用纯文本来组成图案,然后用printf()来处理。
下面我们开始设置文件索引目录(伪代码部分)(c语言)
struct file_index
{
uint64_t file_count;//合并后的文件里共包含几个文件
char[256] file_name;//有几个文件
uint64_t file_size;//文件大小
uint64_t file_offest;//偏移
};
此时我们的文件
package.c是用于打包文本和图像(纯文本表示图案)。
main.c是用于在运行时解码的,image.txt这里使用6当作像素点。
图像:0 7
666 666
6 6 6
666 6
这个图案是0 7。
在package.c读取所有txt文件内容,并先写入文件头索引,再写入文件体,在main.c解码就行了,
这里就不给出代码了,懂这个原理一通百通,你还可以给自定义格式加密,防止他人破解。
暂无关于此日志的评论。