fout in mijn script
Zou je misschien de fout in mijn script willen vinden? Volgens mij moet hij het gewoon doen, maar ik krijg bij de uitvoering een error-bericht van image cannot be displayed.
Alvast bedankt.
De script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
header("Content-type: image/png");
class simpelbar{
private $margin=20;
private $marginverticalline=20;
private $marginhorizentalline=40;
private $barmargin=10;
private $inputwidth;
private $inputheight;
private $cells=array();
private $font="verdana.ttf";
function __construct($width,$height){
$this->inputwidth=$width;
$this->inputheight=$height;
}
function aadbar($company,$money){
$this->cells[$company]=$money;
}
private function fontadjust($widthbar){
$fontsize=$this->marginhorizentalline;
foreach($this->cells as $key=>$val){
while(true){
$textsize=imageTTFbbox($fontsize,0,$this->font,$key);
if(abs($textsize[2])<$widthbar){
break;
}
$fontsize--;
}
}
return $fontsize;
}
function draw(){
$realwidth=$this->inputwidth-$this->margin*2;
$realheight=$this->inputheight-$this->margin*2;
$ystarthorizentalline=$realheight-$this->marginhorizentalline;
$xendhorizentalline=$realwidth-$this->margin;
$max=max($this->cells);
$totalbars=count($this->cells);
$verticallinelong=$ystarthorizentalline-$this->margin;
$widthbar=(int)($realwidth-(2*$this->margin)-($this-barmargin*($totalbars+1))/$totalbars);
$text_size=$this->fontadjust($widthbar);
$image=imagecreate($realwidth,$realheight);
$red=imagecolorallocate($image,255,0,0);
$blue=imagecolorallocate($image,0,0,255);
$black=imagecolorallocate($image,0,0,0);
imageline($image, $this->margin,$ystartborizentalline,$this->margin,$this->margin,$black);
imageline($image,$this->margin,$ystarthorizentalline,$xendhorizentalline,$ystarthorizentalline,$black);
$xbar=$this->margin+$this->barmargin;
foreach($this->cells as $key=>$val){
$ybar=$ystarthorizentalline-(int)(($val/$max)*$verticallinelong);
$nextxbar=$xbar+$widthbar;
$nextybar=$this->marginhorizentalline;
imagefilledrectangle($image,$xbar,$ybar,$nextxbar,$nextybar,$blue);
$box=imageTTFbbox($text_size,0,$this->font,$key);
$xstartfont=$xbar+(int)(($widthbar-$box[2])/2);
imageTTFtext($image,35,0,$xstartfont,$realheight-5,$black,$this->font,$key);
$xbar=$nextxbar+$this->barmargin;
}
imagepng($image);
}
}
$test=new simpelbar(400,300);
$test->addbar("Shell",300);
$test->addbar("Philips",200);
$test->addbar("CCC",400);
$test->draw();
?>
header("Content-type: image/png");
class simpelbar{
private $margin=20;
private $marginverticalline=20;
private $marginhorizentalline=40;
private $barmargin=10;
private $inputwidth;
private $inputheight;
private $cells=array();
private $font="verdana.ttf";
function __construct($width,$height){
$this->inputwidth=$width;
$this->inputheight=$height;
}
function aadbar($company,$money){
$this->cells[$company]=$money;
}
private function fontadjust($widthbar){
$fontsize=$this->marginhorizentalline;
foreach($this->cells as $key=>$val){
while(true){
$textsize=imageTTFbbox($fontsize,0,$this->font,$key);
if(abs($textsize[2])<$widthbar){
break;
}
$fontsize--;
}
}
return $fontsize;
}
function draw(){
$realwidth=$this->inputwidth-$this->margin*2;
$realheight=$this->inputheight-$this->margin*2;
$ystarthorizentalline=$realheight-$this->marginhorizentalline;
$xendhorizentalline=$realwidth-$this->margin;
$max=max($this->cells);
$totalbars=count($this->cells);
$verticallinelong=$ystarthorizentalline-$this->margin;
$widthbar=(int)($realwidth-(2*$this->margin)-($this-barmargin*($totalbars+1))/$totalbars);
$text_size=$this->fontadjust($widthbar);
$image=imagecreate($realwidth,$realheight);
$red=imagecolorallocate($image,255,0,0);
$blue=imagecolorallocate($image,0,0,255);
$black=imagecolorallocate($image,0,0,0);
imageline($image, $this->margin,$ystartborizentalline,$this->margin,$this->margin,$black);
imageline($image,$this->margin,$ystarthorizentalline,$xendhorizentalline,$ystarthorizentalline,$black);
$xbar=$this->margin+$this->barmargin;
foreach($this->cells as $key=>$val){
$ybar=$ystarthorizentalline-(int)(($val/$max)*$verticallinelong);
$nextxbar=$xbar+$widthbar;
$nextybar=$this->marginhorizentalline;
imagefilledrectangle($image,$xbar,$ybar,$nextxbar,$nextybar,$blue);
$box=imageTTFbbox($text_size,0,$this->font,$key);
$xstartfont=$xbar+(int)(($widthbar-$box[2])/2);
imageTTFtext($image,35,0,$xstartfont,$realheight-5,$black,$this->font,$key);
$xbar=$nextxbar+$this->barmargin;
}
imagepng($image);
}
}
$test=new simpelbar(400,300);
$test->addbar("Shell",300);
$test->addbar("Philips",200);
$test->addbar("CCC",400);
$test->draw();
?>
Gewijzigd op 01/01/1970 01:00:00 door M A
Er zijn nog geen reacties op dit bericht.