现在有一个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);
}