/****f* ROBOhdrs/doFile * NAME * doFile * SYNOPSIS * static void doFile(char *proj, char *fname) * SOURCE */ static void doFile( char *proj, char *fname ) { char buf[MAXLINE]; /* backup */ sprintf( buf, "/bin/cp -p %s %s~", fname, fname ); system( buf ); if ( parseCtagsX( doCtagsExec( fname ) ) < 1 ) { fprintf( stderr, "no tags\n" ); exit( 1 ); } arrangeCtags( ctags ); sprintf( buf, "%s~", fname ); insertHeaders( ctags, proj, fname, buf ); }
int io_writeImage(sParameterStruct * sSO2Parameters, sConfigStruct * config) { FILE *fp; short *stBuffer; IplImage *img; CvMat *png; int l; int writen_bytes; char filename[512]; int filenamelength = 512; int state; char *buffer; stBuffer = sSO2Parameters->stBuffer; /* generate filenames */ state = createFilename(sSO2Parameters, config, filename, filenamelength, "png"); if (state) { log_error("could not create txt filename"); return state; } log_debug("filename created: %s", filename); /* convert the image buffer to an openCV image */ // TODO: check if this has already been done // TODO: check return code img = bufferToImage(stBuffer); /* * encode image as png to buffer * playing with the compression is a huge waste of time with no benefit */ png = cvEncodeImage(".png", img, 0); l = png->rows * png->cols; cvReleaseImage(&img); // pry the actual buffer pointer from png buffer = (char *)malloc(l); memcpy(buffer, png->data.s, l); cvReleaseMat(&png); /* add headers */ log_debug("insert headers %i", l); l = insertHeaders(&buffer, sSO2Parameters, config, l); /* save image to disk */ log_debug("open new png file %i", l); fp = fopen(filename, "wb"); if (fp) { writen_bytes = fwrite(buffer, 1, l, fp); state = writen_bytes == l ? 0 : 1; if (state) { log_error("PNG image wasn't written correctly"); } fclose(fp); } else { state = 1; log_error("Couldn't open png file"); } /* cleanup */ free(buffer); if (!state) { log_message("png image written"); } return state; }