如何读取.pgm文件中的像素值并将其复制到数组中。 C-编程

时间:2016-05-01 21:53:21

标签: c pgm

我已经坚持了一段时间。我如何将像素值0-255从pgm文件复制到数组中?这就是我到目前为止所拥有的。我知道我已经脱离了它的假设。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, int *argv[])
{


      int i = 0, j = 0;
      unsigned int str[1000];
      FILE *pgmFile;

      if (argc != 2)
      {
          printf ("ERROR, Not enough arguments.");
          exit(EXIT_FAILURE);
      }

      if ((pgmFile = fopen(argv[1], "r")) == NULL)
      {
          printf ("ERROR, File cannot be opened");
          exit(EXIT_FAILURE);
      }

      do 
      {
          fscanf (pgmFile, "%d", str[i]);
          printf ("%d", str[i]);
          i++;
      }
      while (str[i] != EOF);



     fclose (pgmFile);

     return 0;
}

1 个答案:

答案 0 :(得分:0)

您应首先阅读标题(3行)。

使用标题中的数据,您可以在Y行数中设置for循环读数。在每一行中,您应该读取X量的像素数据和换行符。如果任何读取函数返回错误代码,则应打印出错误消息并中止。

https://en.wikipedia.org/wiki/Netpbm_format