+ for ( i = 1 ; i < num + 1 ; i++ ) {\r
+ for ( j = 0 ; p[i][j] != '\0' ; j++ );\r
+ j -= 5;\r
+ while ( (++p[i][j]) == ('9' + 1) ) {\r
+ p[i][j] = '0';\r
+ j--;\r
+ }\r
+ }\r
+}/*}}}*/\r
+\r
+int main(int argc, char **argv) {/*{{{*/\r
+ tga_image img1;\r
+ tga_image img2;\r
+ tga_result result;\r
+ int i, j;\r
+\r
+ scan_args(argc, argv);\r
+\r
+ #if debug>1\r
+ printf("* Debug * Checking first file:%s\n",p[1]);\r
+ #endif\r
+ result = tga_read(&tga_images[1], p[1]);\r
+ if (result != TGA_NOERR) {\r
+ printf("Error opening first file!\n");\r
+ exit(0);\r
+ }\r
+ if (!tga_is_top_to_bottom(&tga_images[1])) tga_flip_vert(&tga_images[1]);\r
+ w = tga_images[1].width;\r
+ h = tga_images[1].height;\r
+ #if debug>1\r
+ printf("* Debug * Width:%d , Height:%d\n",w,h);\r
+ #endif\r
+ tga_free_buffers(&tga_images[1]);\r
+\r
+ outimage = (uint8_t*) malloc( w*h*3*sizeof(uint8_t) );\r
+ outbuffer = (int*) malloc( w*h*3*sizeof(int) );\r
+\r
+ while(step) {\r
+ for ( i = 1 ; i < num + 1 ; i += framestep ) {\r
+ result = tga_read(&tga_images[i], p[i]);\r
+ if (result == TGA_NOERR) {\r
+ if (!tga_is_top_to_bottom(&tga_images[i])) tga_flip_vert(&tga_images[i]);\r
+ if (!( tga_images[i].width==w && tga_images[i].height==h )) {\r
+ printf("Not identical dimensions!\n");\r
+ exit(0);\r
+ }\r
+ image_datas[i] = tga_images[i].image_data;\r
+ if ( i == 1 ) {\r
+ merge_begin(image_datas[i], c[i]);\r
+ } else {\r
+ merge(image_datas[i], c[i]);\r
+ }\r
+ #if debug>1\r
+ printf("* Debug * Image merged:%s - %d%%\n",p[i],c[i]);\r
+ #endif\r
+ tga_free_buffers(&tga_images[i]);\r
+ } else {\r
+ printf("Error opening image:%s!\n",p[i]);\r
+ exit(0);\r
+ }\r
+ }\r
+ merge_finish();\r
+ sprintf(outname,"%s%05d.tga",outbasename,outindex++);\r
+ tga_write_rgb(outname, (uint8_t *) outimage, w, h, 24);\r
+ #if debug>1\r
+ printf("* Debug * Image writen:%s\n",outname);\r
+ #endif\r
+ for ( j = 0 ; j < step ; j++ ) { increment(); }\r
+ }\r
+\r
+ free(outimage);\r
+ free(outbuffer);\r
+\r
+ return 0;\r
+}/*}}}*/\r