首页 文章

不会读入我的图像

提问于
浏览
0

我正在读取一个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

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

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

    Edit: 啊哈,这可能是这样的:

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

    你的比较是落后的 . 你要:

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

相关问题