#include <stdlib.h> #include <stdio.h> #include "../basicColorImage.c" void halfSize( colorImage original, colorImage half) { int r, c ; pixel pix; for ( r=0; r<half.nrows; r++ ) for ( c=0; c<half.ncols; c++ ) { pix = getColorPixel( original, 2*r, 2*c ) ; setColorPixel( half, r, c, pix ); } } int main ( int argc, char* argv[] ) { colorImage original; colorImage half; if ( argc != 3 ) { printf("colorToHalf original.ppm halfSize.ppm\n"); exit( EXIT_FAILURE ); } /* read in the old image */ readPPMimage( &original, argv[1] ); /* create empty color image */ if ( newColorImage( &half, original.nrows/2, original.ncols/2 ) == NULL ) { printf(">>error<< newColorImage can't allocate memory\n"); exit( EXIT_FAILURE ); } /* fill in half size image */ halfSize( original, half ) ; /* write the image to disk and free memory */ writePPMimage( half, argv[2] ); freeColorImage( &original ); freeColorImage( &half ); }
Comments: