/* ift_ppm.c - implementation of ift_ppm.h. */ /* Last edited on 2001-09-08 23:32:58 by stolfi */ #include "ift_ppm.h" #include "ppm.h" void ift_set_nodes_from_ppm_image(ppm_image *img, ImageGraph *G) { int h, v, k; PixelNode *pg = &(G->node[0]); PixelValue yy; double fmaxval = (double)(img->maxval); if (img->cols != G->cols) { IFT_ERROR("cols mismatch"); } if (img->rows != G->rows) { IFT_ERROR("rows mismatch"); } /* Initialize unused channels: */ for (k = 3; k < MAX_CHANNELS; k++) { yy.c[k] = 0; } /* Set pixels: */ for (v = 0; v < G->rows; v++) for (h = 0; h < G->cols; h++) { pixel (*pm) = &(img->pix[v][h]); yy.c[0] = ((double)(PPM_GETR(*pm)))/fmaxval; yy.c[1] = ((double)(PPM_GETG(*pm)))/fmaxval; yy.c[2] = ((double)(PPM_GETB(*pm)))/fmaxval; pg->y = yy; pg++; } }