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

📄 jpgraph_iconplot.php

📁 一个基于web的开源项目管理工具
💻 PHP
字号:
<?php//=======================================================================// File:	JPGRAPH_ICONPLOT.PHP// Description:	PHP4 Graph Plotting library. Extension module.// Created: 	2004-02-18// Author:	Johan Persson (johanp@aditus.nu)// Ver:		$Id: jpgraph_iconplot.php,v 1.1.10.1 2006/02/28 19:46:57 gregorerhardt Exp $//// Copyright (c) Aditus Consulting. All rights reserved.//========================================================================//===================================================// CLASS IconPlot// Description: Make it possible to add a (small) image// to the graph//===================================================class IconPlot {    var $iHorAnchor='left',$iVertAnchor='top';    var $iX=0,$iY=0;    var $iFile='';    var $iScale=1.0,$iMix=100;    var $iAnchors = array('left','right','top','bottom','center');    var $iCountryFlag='',$iCountryStdSize=3;    var $iScalePosY=null,$iScalePosX=null;    var $iImgString='';    function IconPlot($aFile="",$aX=0,$aY=0,$aScale=1.0,$aMix=100) {	$this->iFile = $aFile;	$this->iX=$aX;	$this->iY=$aY;	$this->iScale= $aScale;	if( $aMix < 0 || $aMix > 100 ) {	    JpGraphError::RaiseL(8001); //('Mix value for icon must be between 0 and 100.');	}	$this->iMix = $aMix ;    }    function CreateFromString($aStr) {	$this->iImgString = $aStr;    }    function SetCountryFlag($aFlag,$aX=0,$aY=0,$aScale=1.0,$aMix=100,$aStdSize=3) {	$this->iCountryFlag = $aFlag;	$this->iX=$aX;	$this->iY=$aY;	$this->iScale= $aScale;	if( $aMix < 0 || $aMix > 100 ) {	    JpGraphError::RaiseL(8001);//'Mix value for icon must be between 0 and 100.');	}	$this->iMix = $aMix;	$this->iCountryStdSize = $aStdSize;    }    function SetPos($aX,$aY) {	$this->iX=$aX;	$this->iY=$aY;    }    function SetScalePos($aX,$aY) {	$this->iScalePosX = $aX;	$this->iScalePosY = $aY;    }    function SetScale($aScale) {	$this->iScale = $aScale;    }    function SetMix($aMix) {	if( $aMix < 0 || $aMix > 100 ) {	    JpGraphError::RaiseL(8001);//('Mix value for icon must be between 0 and 100.');	}	$this->iMix = $aMix ;    }    function SetAnchor($aXAnchor='left',$aYAnchor='center') {	if( !in_array($aXAnchor,$this->iAnchors) ||	    !in_array($aYAnchor,$this->iAnchors) ) {	    JpGraphError::RaiseL(8002);//("Anchor position for icons must be one of 'top', 'bottom', 'left', 'right' or 'center'");	}	$this->iHorAnchor=$aXAnchor;	$this->iVertAnchor=$aYAnchor;    }        function PreStrokeAdjust($aGraph) {	// Nothing to do ...    }    function DoLegend($aGraph) {	// Nothing to do ...    }    function Max() {	return array(false,false);    }    // The next four function are framework function tht gets called    // from Gantt and is not menaiungfull in the context of Icons but    // they must be implemented to avoid errors.    function GetMaxDate() { return false;   }    function GetMinDate() { return false;   }    function GetLineNbr() { return 0;   }    function GetAbsHeight() {return 0;  }    function Min() {	return array(false,false);    }    function StrokeMargin(&$aImg) {	return true;    }    function Stroke(&$aImg,$axscale,$ayscale) {	$this->StrokeWithScale($aImg,$axscale,$ayscale);    }    function StrokeWithScale(&$aImg,$axscale,$ayscale) {	if( $this->iScalePosX === null ||	    $this->iScalePosY === null ) {	    $this->_Stroke($aImg);	}	else {	    $this->_Stroke($aImg,			  round($axscale->Translate($this->iScalePosX)),			  round($ayscale->Translate($this->iScalePosY)));	}    }    function GetWidthHeight() {	$dummy=0;	return $this->_Stroke($dummy,null,null,true);    }    function _Stroke(&$aImg,$x=null,$y=null,$aReturnWidthHeight=false) {	if( $this->iFile != '' && $this->iCountryFlag != '' ) {	    JpGraphError::RaiseL(8003);//('It is not possible to specify both an image file and a country flag for the same icon.');		}	if( $this->iFile != '' ) {	    $gdimg = Graph::LoadBkgImage('',$this->iFile);	}	elseif( $this->iImgString != '') {	    $gdimg = Image::CreateFromString($this->iImgString);	}	else {	    if( ! class_exists('FlagImages') ) {		JpGraphError::RaiseL(8004);//('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.');	    }	    $fobj = new FlagImages($this->iCountryStdSize);	    $dummy='';	    $gdimg = $fobj->GetImgByName($this->iCountryFlag,$dummy);	}	$iconw = imagesx($gdimg);	$iconh = imagesy($gdimg);		if( $aReturnWidthHeight ) {	    return array(round($iconw*$this->iScale),round($iconh*$this->iScale));	}	if( $x !== null && $y !== null ) {	    $this->iX = $x; $this->iY = $y;	}	if( $this->iX >= 0  && $this->iX <= 1.0 ) {	    $w = imagesx($aImg->img);	    $this->iX = round($w*$this->iX);	}	if( $this->iY >= 0  && $this->iY <= 1.0 ) {	    $h = imagesy($aImg->img);	    $this->iY = round($h*$this->iY);	}	if( $this->iHorAnchor == 'center' ) 	    $this->iX -= round($iconw*$this->iScale/2);	if( $this->iHorAnchor == 'right' ) 	    $this->iX -= round($iconw*$this->iScale);	if( $this->iVertAnchor == 'center' ) 	    $this->iY -= round($iconh*$this->iScale/2);	if( $this->iVertAnchor == 'bottom' ) 	    $this->iY -= round($iconh*$this->iScale);	$aImg->CopyMerge($gdimg,$this->iX,$this->iY,0,0,			 round($iconw*$this->iScale),round($iconh*$this->iScale),			 $iconw,$iconh,			 $this->iMix);    }}?>

⌨️ 快捷键说明

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