Working on charts

(now it can generate empty transparent images)

git-svn-id: file:///home/jan/tmp/wetterstation/trunk@86 dd492736-c11a-0410-ad51-8c26713eaf7f
This commit is contained in:
losinshi 2006-09-13 14:16:52 +00:00
parent 0bb9f01fc4
commit 6208082794
6 changed files with 41 additions and 14 deletions

View File

@ -3,6 +3,7 @@ LD = gcc
RM = rm RM = rm
CFLAGS = -c CFLAGS = -c
LDFLAS = -o LDFLAS = -o
LD_LIBS = -lefence -lm -lpq -lgd -lpng -lz -lfreetype
#INCL = -I$$(pg_config --includedir) #INCL = -I$$(pg_config --includedir)
BIN_NAME = chart BIN_NAME = chart
@ -24,8 +25,8 @@ all: $(BIN_NAME)
# Binary Linken # Binary Linken
$(BIN_NAME): $(OBJS) $(BIN_NAME): $(OBJS)
@ echo Linke: $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lm -lpq $(LDFLAS) $(BIN_NAME) $(OBJS) @ echo Linke: $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql $(LD_LIBS) $(LDFLAS) $(BIN_NAME) $(OBJS)
@ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql -lefence -lm -lpq $(LDFLAS) $(BIN_NAME) $(OBJS) @ $(LD) $(DEBUG) $(NOLOG) -L$$(pg_config --libdir)/pgsql $(LD_LIBS) $(LDFLAS) $(BIN_NAME) $(OBJS)
@ echo Binary $(BIN_NAME) ist fertig! @ echo Binary $(BIN_NAME) ist fertig!
# Abhängigkeiten # Abhängigkeiten

View File

@ -107,6 +107,8 @@ int main(int argc, char *argv[]){
if(walk_image_cfg_list()) if(walk_image_cfg_list())
wait_for_childs(NULL); wait_for_childs(NULL);
DEBUGOUT1("\n-------------------------------------------------------------------\nEnde\n");
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }

View File

@ -76,6 +76,9 @@ static int read_color(const char *line, void *arg){
*col = tmp; *col = tmp;
free(buff);
return 1;
} }
/* Ein Interval einlesen. /* Ein Interval einlesen.

View File

@ -1,19 +1,36 @@
#include <stdio.h> #include <stdio.h>
#include <gd.h>
#include "image_draw.h" #include "image_draw.h"
#include "image_data.h" #include "image_data.h"
#include "image_common.h"
static void create_image(); typedef int color;
static gdImagePtr create_image();
static void draw_image(); static void draw_image();
static void write_image(); static void write_image_png(gdImagePtr, FILE *);
int draw_to_file(FILE *fd){ int draw_to_file(FILE *fd){
gdImagePtr img = create_image();
draw_image(); draw_image();
write_image_png(img, fd);
} }
static void create_image(){ static gdImagePtr create_image(){
gdImagePtr new_img = NULL;
color back;
img_color_ptr back_p = img_cfg.bg_color;
new_img = gdImageCreateTrueColor(img_cfg.width, img_cfg.height);
gdImageAlphaBlending(new_img, 0);
back = gdImageColorAllocateAlpha( new_img, back_p->r, back_p->g, back_p->b, back_p->alpha );
gdImageFilledRectangle(new_img, 0,0,img_cfg.width, img_cfg.height, back);
gdImageAlphaBlending(new_img, 1);
return new_img;
} }
static void draw_image(){ static void draw_image(){
@ -21,6 +38,8 @@ static void draw_image(){
} }
static void write_image(){ static void write_image_png(gdImagePtr img, FILE *fd){
gdImageAlphaBlending(img, 0);
gdImageSaveAlpha(img, 1);
gdImagePng(img, fd);
} }

View File

@ -92,9 +92,10 @@ static int check_file_interval(){
DEBUGOUT3("Datei '%s' ist %d Sek. alt \n", img_cfg.file_name, diff_sek); DEBUGOUT3("Datei '%s' ist %d Sek. alt \n", img_cfg.file_name, diff_sek);
DEBUGOUT2("Sie soll aller %d Sek. neu generiert werden \n", img_cfg.gen_interval); DEBUGOUT2("Sie soll aller %d Sek. neu generiert werden \n", img_cfg.gen_interval);
if(diff_sek > img_cfg.gen_interval) if(diff_sek > img_cfg.gen_interval){
DEBUGOUT1("Sie muss neu generiert werden!\n"); DEBUGOUT1("Sie muss neu generiert werden!\n");
return 1; return 1;
}
} else { } else {
exit_error(ERROR_STAT); exit_error(ERROR_STAT);
@ -104,5 +105,6 @@ static int check_file_interval(){
} }
static void regenerate_image(){ static void regenerate_image(){
draw_to_file(NULL); FILE *fd = fopen(img_cfg.file_name, "wb");
draw_to_file(fd);
} }

View File

@ -3,7 +3,7 @@ headline Testbild
manual_table no manual_table no
manual_table_name auss2_data manual_table_name auss2_data
table_field temp table_field temp
gen_interval 15m gen_interval 15
show_interval 1h show_interval 1h
label_interval 10m label_interval 10m
label_sum no label_sum no
@ -11,4 +11,4 @@ width 400
height 250 height 250
sensor_id 1 sensor_id 1
bg_color 10:2c:30:00 #test bg_color 60:30:50:af #test