⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sparkline.php

📁 希望此段源编码能给所有需要它的朋友带去快乐
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* * Sparkline PHP Graphing Library * Copyright 2004 James Byers <jbyers@users.sf.net> * http://sparkline.org * * Sparkline is distributed under a BSD License.  See LICENSE for details. * * $Id: Sparkline.php,v 1.8 2005/05/02 20:25:47 jbyers Exp $ * */define('TEXT_TOP',    1);define('TEXT_RIGHT',  2);define('TEXT_BOTTOM', 3);define('TEXT_LEFT',   4);define('FONT_1', 1);define('FONT_2', 2);define('FONT_3', 3);define('FONT_4', 4);define('FONT_5', 5);require_once('Object.php');class Sparkline extends Object {  var $imageX;  var $imageY;  var $imageHandle;  var $graphAreaPx;  var $graphAreaPt;  var $colorList;  var $colorBackground;  var $lineSize;  ////////////////////////////////////////////////////////////////////////////  // constructor  //  function Sparkline($catch_errors = true) {    parent::Object($catch_errors);    $this->colorList       = array();    $this->colorBackground = 'white';    $this->lineSize        = 1;    $this->graphAreaPx = array(array(0, 0), array(0, 0)); // px(L, B), px(R, T)  } // function Sparkline  ////////////////////////////////////////////////////////////////////////////  // init  //  function Init($x, $y) {    $this->Debug("Sparkline :: Init($x, $y)", DEBUG_CALLS);    $this->imageX    = $x;    $this->imageY    = $y;    // Set functions may have already set graphAreaPx offsets; add image dimensions    //    $this->graphAreaPx = array(array($this->graphAreaPx[0][0],                                   $this->graphAreaPx[0][1]),                             array($this->graphAreaPx[1][0] + $x - 1,                                   $this->graphAreaPx[1][1] + $y - 1));        $this->imageHandle = $this->CreateImageHandle($x, $y);    // load default colors; set all color handles    //    $this->SetColorDefaults();    while (list($k, $v) = each($this->colorList)) {      $this->SetColorHandle($k, $this->DrawColorAllocate($k, $this->imageHandle));    }    reset($this->colorList);    if ($this->IsError()) {      return false;    } else {      return true;    }  } // function Init  ////////////////////////////////////////////////////////////////////////////  // color, drawing setup functions  //  function SetColor($name, $r, $g, $b) {    $this->Debug("Sparkline :: SetColor('$name', $r, $g, $b)", DEBUG_SET);    $name = strtolower($name);    $this->colorList[$name] = array('rgb' => array($r, $g, $b));  } // function SetDecColor  function SetColorHandle($name, $handle) {    $this->Debug("Sparkline :: SetColorHandle('$name', $handle)", DEBUG_SET);    $name = strtolower($name);    if (array_key_exists($name, $this->colorList)) {      $this->colorList[$name]['handle'] = $handle;      return true;    } else {      return false;    }  } // function SetColorHandle  function SetColorHex($name, $r, $g, $b) {    $this->Debug("Sparkline :: SetColorHex('$name', $r, $g, $b)", DEBUG_SET);    $this->SetColor($name, hexdec($r), hexdec($g), hexdec($b));  } // function SetHexColor  function SetColorHtml($name, $rgb) {    $this->Debug("Sparkline :: SetColorHtml('$name', '$rgb')", DEBUG_SET);    $rgb = trim($rgb, '#');    $this->SetColor($name, hexdec(substr($rgb, 0, 2)), hexdec(substr($rgb, 2, 2)), hexdec(substr($rgb, 4, 2)));  } // function SetHexColor  function SetColorBackground($name) {    $this->Debug("Sparkline :: SetColorBackground('$name')", DEBUG_SET);    $this->colorBackground = $name;  } // function SetColorBackground  function GetColor($name) {    if (array_key_exists($name, $this->colorList)) {      return $this->colorList[$name]['rgb'];    } else {      return false;    }  } // function GetColor  function GetColorHandle($name) {    $name = strtolower($name);    if (array_key_exists($name, $this->colorList)) {      return $this->colorList[$name]['handle'];    } else {      $this->Debug("Sparkline :: GetColorHandle color '$name' not set", DEBUG_WARNING);      return false;    }  } // function GetColorHandle  function SetColorDefaults() {    $this->Debug("Sparkline :: SetColorDefaults()", DEBUG_SET);    $colorDefaults = array(array('aqua',   '#00FFFF'),                           array('black',  '#010101'), // TODO failure if 000000?                           array('blue',   '#0000FF'),                           array('fuscia', '#FF00FF'),                           array('gray',   '#808080'),                           array('grey',   '#808080'),                           array('green',  '#008000'),                           array('lime',   '#00FF00'),                           array('maroon', '#800000'),                           array('navy',   '#000080'),                           array('olive',  '#808000'),                           array('purple', '#800080'),                           array('red',    '#FF0000'),                           array('silver', '#C0C0C0'),                           array('teal',   '#008080'),                           array('white',  '#FFFFFF'),                           array('yellow', '#FFFF00'));    while (list(, $v) = each($colorDefaults)) {      if (!array_key_exists($v[0], $this->colorList)) {        $this->SetColorHtml($v[0], $v[1]);      }    }  } // function SetColorDefaults  function SetLineSize($size) {    $this->Debug("Sparkline :: SetLineSize($size)", DEBUG_CALLS);    $this->lineSize = $size;  } // function SetLineSize  function GetLineSize() {    return($this->lineSize);  } // function GetLineSize  function SetPadding($T, $R = null, $B = null, $L = null) {    $this->Debug("Sparkline :: SetPadding($T, $R, $B, $L)", DEBUG_CALLS);    if (null == $R &&        null == $B &&        null == $L) {      $this->graphAreaPx = array(array($this->graphAreaPx[0][0] + $T,                                       $this->graphAreaPx[0][1] + $T),                                 array($this->graphAreaPx[1][0] - $T,                                       $this->graphAreaPx[1][1] - $T));    } else {      $this->graphAreaPx = array(array($this->graphAreaPx[0][0] + $L,                                       $this->graphAreaPx[0][1] + $B),                                 array($this->graphAreaPx[1][0] - $R,                                       $this->graphAreaPx[1][1] - $T));    }  } // function SetPadding  ////////////////////////////////////////////////////////////////////////////  // canvas setup  //  function CreateImageHandle($x, $y) {    $this->Debug("Sparkline :: CreateImageHandle($x, $y)", DEBUG_CALLS);	if(function_exists('imagecreatetruecolor'))	{	    $handle = imagecreatetruecolor($x, $y);	}	elseif(function_exists('imagecreate'))	{		      $handle = imagecreate($x, $y);	}	else	{		echo "You need at least imagecreate()";exit;	}    if (!is_resource($handle)) {      $this->Debug('imagecreatetruecolor unavailable', DEBUG_WARNING);    }    if (!is_resource($handle)) {      $this->Debug('imagecreate unavailable', DEBUG_WARNING);      $this->Error('could not create image; GD imagecreate functions unavailable');    }    return $handle;  } // function CreateImageHandle  ////////////////////////////////////////////////////////////////////////////  // drawing primitives  //  // NB: all drawing primitives use the coordinate system where (0,0)   //     corresponds to the bottom left of the image, unlike y-inverted   //     PHP gd functions  //  function DrawBackground($handle = false) {    $this->Debug("Sparkline :: DrawBackground()", DEBUG_DRAW);    if (!$this->IsError()) {      if ($handle === false) $handle = $this->imageHandle;      return $this->DrawRectangleFilled(0,                                         0,                                         imagesx($handle) - 1,                                        imagesy($handle) - 1,                                        $this->colorBackground,                                        $handle);    }  } // function DrawBackground  function DrawColorAllocate($color, $handle = false) {    $this->Debug("Sparkline :: DrawColorAllocate('$color')", DEBUG_DRAW);    if (!$this->IsError() &&        $colorRGB = $this->GetColor($color)) {      if ($handle === false) $handle = $this->imageHandle;      return imagecolorallocate($handle,                                $colorRGB[0],                                 $colorRGB[1],                                 $colorRGB[2]);    }  } // function DrawColorAllocate  function DrawFill($x, $y, $color, $handle = false) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -