#include #include #include "gd.h" struct parameter { char piece[256]; char rotate[256]; char x[256]; char y[256]; } html_error() { printf("Content-type: text/html\n\n"); printf("File open error"); exit(1); } void parse_extra(char *extra_path, struct parameter paramlist[]) { char *charp,*slash1,*slash2,*slash3,*slash4; int i=0,j,k; for(j=1;jsx,input_image->sy); gdImageCopy(output_image, input_image, 0,0, 0,0, input_image->sx,input_image->sy); printf("Content-type: multipart/x-mixed-replace;boundary=ThisRandomString\n"); printf("\n--ThisRandomString\n"); printf("Content-type: image/gif\n\n"); gdImageGif(output_image,stdout); printf("\n--ThisRandomString\n"); gdImageDestroy(output_image); exit(1); } /* use param list to generate Tangoes map */ if(!(tangmap_fp = fopen("/home/users/c/crywalt/public_html/tangoes/tangmaps.gif","r"))) html_error(); input_image = gdImageCreateFromGif(tangmap_fp); output_image = gdImageCreate(input_image->sx,input_image->sy); gdImageCopy(output_image, input_image, 0,0, 0,0, input_image->sx,input_image->sy); j=0; while((strcmp(paramlist[j].piece,"LAST"))&&(j<255)) { sprintf(piece_file_name,"/home/users/c/crywalt/public_html/tangoes/tang%snsc.gif",paramlist[j].piece); if(!(piece_fp = fopen(piece_file_name,"r"))) html_error(); piece_image = gdImageCreateFromGif(piece_fp); fclose(piece_fp); if((!strcmp(paramlist[j].piece,"6"))|| (!strcmp(paramlist[j].piece,"7"))) gdImageCopy(output_image, piece_image, 0,input_image->sy/2, 0,0, piece_image->sx,piece_image->sy); else gdImageCopy(output_image, piece_image, 0,0, 0,0, piece_image->sx,piece_image->sy); gdImageDestroy(piece_image); j++; } printf("Content-type: multipart/x-mixed-replace;boundary=ThisRandomString\n"); printf("\n--ThisRandomString\n"); printf("Content-type: image/gif\n\n"); gdImageGif(output_image,stdout); printf("\n--ThisRandomString\n"); gdImageDestroy(output_image); }