/* A program to invert a PBM image
 * Usage: invert input output
 *
 * Jerod Weinman
 * 12 June 2008
 */
#include "pbmio.h"

/* invertImage -- Flips every bit in an image */
void invertImage(pbm_t *im)
{
     int i,j;
     for (i=0 ; i < im->rows ; i++)
          for (j=0 ; j < im->cols ; j++)
          {
               im->bits[i][j] = !im->bits[i][j]; /* Invert */
          }
}


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

     pbm_t im; /* The image */

     /* Check arguments */
     if (argc!=3)
     {
          fprintf(stderr,"Usage: %s input output",argv[0]);
          exit (1);
     }

     pbmread(argv[1],&im); /* Read the image */

     invertImage(&im); /* Do the inversion */

     pbmwrite(argv[2],&im); /* Store the result */

					return 1;
}
