Rev 1 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*=======================================================================// File: JPGRAPH_CANVAS.PHP// Description: Canvas drawing extension for JpGraph// Created: 2001-01-08// Ver: $Id: jpgraph_canvas.php 782 2006-10-08 08:09:02Z ljp $//// Copyright (c) Aditus Consulting. All rights reserved.//========================================================================*///===================================================// CLASS CanvasGraph// Description: Creates a simple canvas graph which// might be used together with the basic Image drawing// primitives. Useful to auickoly produce some arbitrary// graphic which benefits from all the functionality in the// graph liek caching for example.//===================================================class CanvasGraph extends Graph {//---------------// CONSTRUCTORfunction CanvasGraph($aWidth=300,$aHeight=200,$aCachedName="",$timeout=0,$inline=1) {$this->Graph($aWidth,$aHeight,$aCachedName,$timeout,$inline);}//---------------// PUBLIC METHODSfunction InitFrame() {$this->StrokePlotArea();}// Method descriptionfunction Stroke($aStrokeFileName="") {if( $this->texts != null ) {for($i=0; $i < count($this->texts); ++$i) {$this->texts[$i]->Stroke($this->img);}}if( $this->iTables !== null ) {for($i=0; $i < count($this->iTables); ++$i) {$this->iTables[$i]->Stroke($this->img);}}$this->StrokeTitles();// If the filename is the predefined value = '_csim_special_'// we assume that the call to stroke only needs to do enough// to correctly generate the CSIM maps.// We use this variable to skip things we don't strictly need// to do to generate the image map to improve performance// a best we can. Therefor you will see a lot of tests !$_csim in the// code below.$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);// We need to know if we have stroked the plot in the// GetCSIMareas. Otherwise the CSIM hasn't been generated// and in the case of GetCSIM called before stroke to generate// CSIM without storing an image to disk GetCSIM must call Stroke.$this->iHasStroked = true;if( !$_csim ) {// Should we do any final image transformationif( $this->iImgTrans ) {if( !class_exists('ImgTrans') ) {require_once('jpgraph_imgtrans.php');}$tform = new ImgTrans($this->img->img);$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,$this->iImgTransDirection,$this->iImgTransHighQ,$this->iImgTransMinSize,$this->iImgTransFillColor,$this->iImgTransBorder);}// If the filename is given as the special _IMG_HANDLER// then the image handler is returned and the image is NOT// streamed backif( $aStrokeFileName == _IMG_HANDLER ) {return $this->img->img;}else {// Finally stream the generated picture$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName);return true;}}}} // Class/* EOF */?>