Code Bye

C语言 怎么样把十六进制数据转变为图片


现在有一个txt文档,里面的数据是以十六进制形式存储的图片信息,如上图,怎么样用c语言把这些数据转变为一个jpg格式的图片
解决方案:5分
txt文档保存图片?数据格式是什么?要转换到jpg也要知道jpg压缩格式。
格式转换一下,保存成文件。
http://blog.csdn.net/zhengzhoudaxue2/article/details/7693258
找找C中有没有对应转码的库,研究一下。
第一个图片会比较困难,但是一个完成以后下一个会好很多了
解决方案:5分
前两个字节为ffd8,说明这个已经是jpg格式了,只不过是将二进制的图片数据转存为了hex字符串。
直接从文件中读取这个字符串,写个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);
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C语言 怎么样把十六进制数据转变为图片