fout in mijn script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

M A

M A

01/11/2006 08:36:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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();
?>
Gewijzigd op 01/01/1970 01:00:00 door M A
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.