c语言 图像问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 09:44:32
有一个黑白的图片128*128的 格式未知即没有所谓的文件头,写一段c程序将它读入内存并输出到为一个文件,听老师说要定义一个二维数组做但具体不知道怎么办了,请大侠们帮忙
有没有那个c函数能读取图像的灰度值raw的

如果是2维数组的话,把整个数组直接写到文件中就可以了.
例如:
//写
char pic[128][128];
FILE *f=fopen ("test","wb");
fwrite(pic, 1, 128*128, f);
fclose(f);
//读
f = fopen("test","rb");
fread (pic, 1, 128*128, f);
fclose (f);

其实最好不要用二维数组, 而使用一维数组,因为二维数组相当不灵活
例如:
char pic[128*128];
访问内容的时候用这种格式 pic[x+(y*128)]

#include <stdio.h>

int main(void)
{
FILE *fp = fopen("picture","rb");
char *pic;
int ch,i = 0;

fseek(fp,0,SEEK_END);
pic = (char*)malloc(ftell(fp));

rewind(fp);
ch = fgetc(fp);
while(!feof(fp))
{
pic[i++] = ch;
ch = fgetc(fp);
}

fclose(fp);

fp = fopen("pict","wb");
fwrite(pic,1,i,fp);
fclose(fp);

return 0;
}