//! @brief PGM(1byte,グレースケール,テキスト)を書き込む
//! @param [in] fname ファイル名
//! @param [in] width 画像の幅
//! @param [in] height 画像の高さ
//! @param [in] p 画像のメモリへのアドレス
//! @param [in] vmax 最も明るい画素の値。普通の画像なら255
//! @details Grayscaleのメモリを渡すと、テキストでファイル名fnameで書き込む
void pgmP2_write(
  const char* const fname,
  const int width,
  const int height,
  const unsigned char* const p,
  const int vmax
) {

  FILE* fp = fopen(fname, "wb");
  fprintf(fp, "P2\n%d %d\n%d\n", width, height, vmax);

  size_t k = 0;
  for (size_t i = 0; i < (size_t)height; i++) {
    for (size_t j = 0; j < (size_t)width; j++) {
      fprintf(fp, "%d ",p[k]);
      k++;
    }
    fprintf(fp, "\n");
  }

  fclose(fp);
}