summaryrefslogtreecommitdiff
path: root/html/jpgraph/jpgraph_canvas.php
diff options
context:
space:
mode:
Diffstat (limited to 'html/jpgraph/jpgraph_canvas.php')
-rw-r--r--html/jpgraph/jpgraph_canvas.php95
1 files changed, 95 insertions, 0 deletions
diff --git a/html/jpgraph/jpgraph_canvas.php b/html/jpgraph/jpgraph_canvas.php
new file mode 100644
index 0000000..f942951
--- /dev/null
+++ b/html/jpgraph/jpgraph_canvas.php
@@ -0,0 +1,95 @@
+<?php
+/*=======================================================================
+ // File: JPGRAPH_CANVAS.PHP
+ // Description: Canvas drawing extension for JpGraph
+ // Created: 2001-01-08
+ // Ver: $Id: jpgraph_canvas.php 1923 2010-01-11 13:48:49Z ljp $
+ //
+ // Copyright (c) Asial Corporation. 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 {
+ //---------------
+ // CONSTRUCTOR
+ function __construct($aWidth=300,$aHeight=200,$aCachedName="",$timeout=0,$inline=1) {
+ parent::__construct($aWidth,$aHeight,$aCachedName,$timeout,$inline);
+ }
+
+ //---------------
+ // PUBLIC METHODS
+
+ function InitFrame() {
+ $this->StrokePlotArea();
+ }
+
+ // Method description
+ function 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 transformation
+ if( $this->iImgTrans ) {
+ if( !class_exists('ImgTrans',false) ) {
+ 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 back
+ if( $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 */
+?>