Jump to content

Imagepng problem


Mehdi

Recommended Posts

Hi,

The below script doesn't run. If I run it I get the error message of "The image cannot be displayed".
Could you tell me where the error is?
[code]<?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="luxisri.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();
?>[/code]
Link to comment
https://forums.phpfreaks.com/topic/25785-imagepng-problem/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.