首页 文章

Ansi C从PPM文件freez中读取

提问于
浏览
0

我在我的ansi c代码中遇到了一些问题 . 我想读取PPM图片(P6),然后将其写入color(int)数组 . 一切都应该很好,但不幸的是它不是 .

问题是,读数在某些时候冻结 - 每次都在同一点 .

这是一个阅读代码:

int **red,**blue,**green;
    //... Some code, allocations etc.
    static unsigned char a[3];
    for(i = 0; i < x; i++)
    {
           for(j = 0; j < y; j++)
           {
                fread(a, 1, 3, pic);
                red[i][j] = a[0];
                //green[i][j] = a[1];
                //blue[i][j] = a[2];
           }
    }

当它读取值24时,它变得疯狂 - 在一切正常之前 . 该值与红色对齐,直到循环结束为24 .

我没有想法,那里发生了什么,所以这就是为什么我要求你们提出一些建议 - 这里有什么不对,如何解决?

EDIT

这是我的分配:

red = (int **)malloc(sizeof(int*) * x);
green = (int **)malloc(sizeof(int*) * x);
blue = (int **)malloc(sizeof(int*) * x);

for (i = 0; i < x; i++)
{
       red[i] = (int*)malloc(sizeof(int) * y);
       green[i] = (int*)malloc(sizeof(int) * y);
       blue[i] = (int*)malloc(sizeof(int) * y);
}

EDIT2:

X是473,Y是600

EDIT3:

我做了告诉并上传了图片(这次不同)和我在dropbox上的源代码:code . 尽管不同的图片仍然在某些时候冻结 . 这次是70 .

1 回答

相关问题