现在有一个txt文档,里面的数据是以十六进制形式存储的图片信息,如上图,怎么样用c语言把这些数据转变为一个jpg格式的图片
解决方案:5分
txt文档保存图片?数据格式是什么?要转换到jpg也要知道jpg压缩格式。
格式转换一下,保存成文件。
http://blog.csdn.net/zhengzhoudaxue2/article/details/7693258
找找C中有没有对应转码的库,研究一下。
第一个图片会比较困难,但是一个完成以后下一个会好很多了
格式转换一下,保存成文件。
http://blog.csdn.net/zhengzhoudaxue2/article/details/7693258
找找C中有没有对应转码的库,研究一下。
第一个图片会比较困难,但是一个完成以后下一个会好很多了
解决方案:5分
前两个字节为ffd8,说明这个已经是jpg格式了,只不过是将二进制的图片数据转存为了hex字符串。
直接从文件中读取这个字符串,写个hex2bin函数,将其转回成二进制格式即可。
直接从文件中读取这个字符串,写个hex2bin函数,将其转回成二进制格式即可。
解决方案:10分
#include <stdio.h> #include <string.h> #include <conio.h> FILE *fi,*fo; unsigned int n; int c; //-- void main(int argc,char *argv[]) { if (argc<3) { cprintf("Bin2Hex srcfile desfile"); return; } if ((fi=fopen(argv[1],"rb"))==NULL) { cprintf("Can not find file %s",argv[1]); return; } if ((fo=fopen(argv[2],"w"))==NULL) { fclose(fi); cprintf("Can not create file %s",argv[2]); return; } n=0; while (1) { c=fgetc(fi); if (EOF==c) break; n++; if (1==n) fprintf(fo, "0x%02X",c); else { if (1==n%16) fprintf(fo,"\n0x%02X",c); else fprintf(fo, ",0x%02X",c); } } fcloseall(); cprintf("OK to Bin2Hex %u bytes.",n); }