/*Download:gd13.c*/
#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;
}
|