不会读入我的图像

时间:2013-12-11 04:43:16

标签: c io scanf printf ppm

我正在读取PPM文件,并且我在整个函数中使用了printf来查看它是否会打印但是由于某种原因它会打印p3 / comment / width / height / maxcolor但它不会打印像素...我尝试使用我的嵌套for循环内外的printf语句进行检查,但它不会读取数据...任何想法?

void ReadImages(struct ImageType *imgur, struct ImageType *imgur2)
   {
     int i=0, j=0;
     char filename[30];
     char filename2[30];

     FILE *inputfile;
     fprintf(stdout, "Please enter the filename/location of the first image\n");
     fscanf(stdin, "%s", filename);
     inputfile = fopen(filename, "r");

     fscanf(inputfile,"%[^\n]%c", imgur->ppImage, &imgur->newlinechar);
     fscanf(inputfile,"%[^\n]%c", imgur->comment, &imgur->newlinechar);
     fscanf(inputfile, "%i %i", &imgur->width, &imgur-height);
     fscanf(inputfile, "%i", &imgur->maxColor);

     for(i=imgur->height-1; i >= 0; i--)
        {
           for(j=0; j > imgur->width; j++)
              {
                 fscanf(inputfile, "%i", &imgur->image[i][j].red);
                 fscanf(inputfile,"%i", &imgur->image[i][j].green);
                 fscanf(inputfile,"%i", &imgur->image[i][j].blue);
               }
        }

是的我确保我的结构是红色/绿色/蓝色并且我已经检查了打印注释/ maxcolor /以及其他一切都有效。

1 个答案:

答案 0 :(得分:0)

您是否在imgur->image为图片分配了存储空间?如果没有,那么你的程序就会崩溃。

此外,您确实意识到for循环中没有可读取像素的打印语句,因此这也可能是它不打印像素的原因。

编辑:啊哈,很可能是这样:

       for(j=0; j > imgur->width; j++)

你的比较是落后的。你想要:

       for(j=0; j < imgur->width; j++)