95 Answer ― PGM Gray to PPM Gray


#include <stdlib.h>
#include <stdio.h>
#include "../basicColorImage.c"
#include "../basicImage.c"

void copyToPPM( image gimg, colorImage cimg )
{
  int r, c, gray;
  pixel pix;
  for ( r=0; r<cimg.nrows; r++ )
    for ( c=0; c<cimg.ncols; c++ )
    {
      gray = getPixel( gimg, r, c );
      pix.red = gray;
      pix.grn = gray;
      pix.blu = gray;
      setColorPixel ( cimg, r, c, pix );
    }
}

int main ( int argc, char* argv[] )
{
  colorImage cimg;
  image gimg;
  if ( argc != 3 )
  {
    printf("PGMtoPPM oldImage.pgm newImage.pgm\n");
    exit( EXIT_FAILURE );
  }

  /* read in the old image */
  readPGMimage( &gimg, argv[1] );

  /* create empty color image */
  newColorImage( &cimg, gimg.nrows, gimg.ncols );

  /* fill color image */
  copyToPPM( gimg, cimg ) ;

  /* write the image to disk and free memory */
  writePPMimage( cimg, argv[2]);
  freeColorImage( &cimg );
  freeImage( &gimg );
}


Comments: