#include <stdio.h>
#include <gd.h>
#include <gdfontl.h>
#include <gdfontt.h>
#include <gdfonts.h>
#include <gdfontmb.h>
#include <gdfontg.h>


int main()
{
 /*image initialisieren*/
 gdImagePtr image;
 FILE *png, *csv;
 int black, white, red, green, grey, blue;
 char tag[4];
 int ausgaben,einnahmen=5;
 float prozent;
 int var=10,durchschnitt=0,schnitt=0;
 char proz[3],schnitt_string[30];
 /*Neues Image erstellen*/
 image = gdImageCreate(160,230);
 if(image==NULL) { /*Fehler*/ exit(0); }

 white=gdImageColorAllocate(image,255,255,255);
 black=gdImageColorAllocate(image,0,0,0);
 red  =gdImageColorAllocate(image,255,0,0);
 green=gdImageColorAllocate(image,0,255,0);
 grey =gdImageColorAllocate(image,127,127,127);
 blue =gdImageColorAllocate(image,0,0,255);

 image->transparent=white;
 proz[0]='\0';
 csv=fopen("./umsatz.csv","r");
 if(csv==NULL) { fprintf(stderr,"Konnte CSV-Datei nicht öffnen\n");exit(0);}
 while( fscanf(csv,"%[^:]:%d:%d\n",tag,&ausgaben,&einnahmen) != EOF)
  {
   /*Verlust-Gewinn Prozentual*/
   prozent= (100/(float)ausgaben) * (float)einnahmen;
   printf("%.0f\n",prozent);
   sprintf(proz,"%.0f%%",prozent-100);
   if(prozent < 100.0){
     gdImageFilledRectangle(image,var,prozent,var+20,100,red);
     gdImageString(image,gdFontTiny,var+2,10,proz,black);
     gdImageString(image,gdFontSmall,var+4,190,tag,black);
     }
   else{
     gdImageFilledRectangle(image,var,100,var+20,prozent,green);
     gdImageString(image,gdFontTiny,var+2,10,proz,black);
     gdImageString(image,gdFontSmall,var+4,190,tag,black);
     }
  var+=20;
  durchschnitt+=prozent;
  proz[0]='\0';
 }

 durchschnitt/=7;
 gdImageLine(image,0,durchschnitt,219,durchschnitt,blue);
/*Das Gittermuster.... */
 gdImageLine(image,10,100,199,100,black);
 for(var=10; var <160; var+=20)
   gdImageDashedLine(image,var,0,var,199,black);

 gdImageChar(image,gdFontSmall,2,95,'0',black);
 gdImageChar(image,gdFontSmall,2,50,'-',black);
 gdImageChar(image,gdFontSmall,2,150,'+',black);

 schnitt=durchschnitt-100;
 sprintf(schnitt_string,"Wochenschnitt : %d Prozent",schnitt);
 gdImageString(image,gdFontSmall,5,210,schnitt_string,blue);

 png = fopen("bild15.png","wb");

 gdImagePng(image,png);

 fclose(png);

 gdImageDestroy(image);

 return 0;
}
