![]() |
How to write image data to binary PGM file format(P5)?
Hi all,
I fail to write the image data to binary PGM format (P5). Let's say i have to write a image data into PGM P5 format. I have the information for width, height, Y_min, Y_max, XL, XR and the TEMPLATE1 (data matrix) ==>A region of interest from an image. Y_min & Y_max = minimum and maximum of the height value. XL & XR = min and max of the width value for the image. First, i call the subroutine, write_data_grey_binary(width1,height1,XL1,XR1,Y_mi n1,Y_max1,filename99[total],TEMPLATE1); void write_data_grey_binary(width,height,XL,XR,Y_min,Y_ max,filename,output) int width,height,XL,XR,Y_min,Y_max; char *filename; unsigned char** output; { int i,j,nread; FILE *fp; unsigned char* temp; if((fp = fopen(filename,"w")) == NULL){ printf("File 333 output data can not open\n"); exit(1); } fprintf(fp,"P5\n%d %d\n%d\n",width,height,(GRYSCL-1)); temp = (unsigned char*)calloc(height*width, sizeof(unsigned char)); for(i=Y_min;i<=Y_max;i++){ for(j=XL;j<=XR;j++){ temp[(i*width)+j]= (unsigned char)output[i][j]; } } nread = fwrite((void*)temp, sizeof(unsigned char), (height*width), fp); free(temp); fclose(fp); return(0); } However , i have an error at the line " temp[(i*width)+j]= (unsigned char)output[i][j]; ". However, this coding can be ran when i want to write the full image like: write_data_grey_binary(width,height,0,width-1,0,height-1,filename99[total],inpgrey); |
| All times are GMT -5. The time now is 00:26. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi