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

📄 jpgraph.php

📁 一个基于web的开源项目管理工具
💻 PHP
📖 第 1 页 / 共 5 页
字号:
	$titlebackground_framestyle = 2,	$titlebackground_frameweight = 1,	$titlebackground_bevelheight = 3 ;    var $titlebkg_fillstyle=TITLEBKG_FILLSTYLE_SOLID;    var $titlebkg_scolor1='black',$titlebkg_scolor2='white';    var $framebevel = false, $framebeveldepth = 2 ;    var $framebevelborder = false, $framebevelbordercolor='black';    var $framebevelcolor1='white@0.4', $framebevelcolor2='black@0.4';    var $background_image_mix=100;    var $background_cflag = '';    var $background_cflag_type = BGIMG_FILLPLOT;    var $background_cflag_mix = 100;    var $iImgTrans=false,	$iImgTransHorizon = 100,$iImgTransSkewDist=150,	$iImgTransDirection = 1, $iImgTransMinSize = true,	$iImgTransFillColor='white',$iImgTransHighQ=false,	$iImgTransBorder=false,$iImgTransHorizonPos=0.5;    var $iYAxisDeltaPos=50;    var $iIconDepth=DEPTH_BACK;    var $iAxisLblBgType = 0,	$iXAxisLblBgFillColor = 'lightgray', $iXAxisLblBgColor = 'black',	$iYAxisLblBgFillColor = 'lightgray', $iYAxisLblBgColor = 'black';    var $iTables=NULL;//---------------// CONSTRUCTOR    // aWIdth 		Width in pixels of image    // aHeight  	Height in pixels of image    // aCachedName	Name for image file in cache directory     // aTimeOut		Timeout in minutes for image in cache    // aInline		If true the image is streamed back in the call to Stroke()    //			If false the image is just created in the cache    function Graph($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) {	GLOBAL $gJpgBrandTiming;	// If timing is used create a new timing object	if( $gJpgBrandTiming ) {	    global $tim;	    $tim = new JpgTimer();	    $tim->Push();	}	if( !is_numeric($aWidth) || !is_numeric($aHeight) ) {	    JpGraphError::RaiseL(25008);//('Image width/height argument in Graph::Graph() must be numeric');	}			// Automatically generate the image file name based on the name of the script that	// generates the graph	if( $aCachedName=="auto" )	    $aCachedName=GenImgName();				// Should the image be streamed back to the browser or only to the cache?	$this->inline=$aInline;			$this->img	= new RotImage($aWidth,$aHeight);	$this->cache 	= new ImgStreamCache($this->img);	$this->cache->SetTimeOut($aTimeOut);	$this->title = new Text();	$this->title->ParagraphAlign('center');	$this->title->SetFont(FF_FONT2,FS_BOLD);	$this->title->SetMargin(3);	$this->title->SetAlign('center');	$this->subtitle = new Text();	$this->subtitle->ParagraphAlign('center');	$this->subtitle->SetMargin(2);	$this->subtitle->SetAlign('center');	$this->subsubtitle = new Text();	$this->subsubtitle->ParagraphAlign('center');	$this->subsubtitle->SetMargin(2);	$this->subsubtitle->SetAlign('center');	$this->legend = new Legend();	$this->footer = new Footer();	// Window doesn't like '?' in the file name so replace it with an '_'	$aCachedName = str_replace("?","_",$aCachedName);	// If the cached version exist just read it directly from the	// cache, stream it back to browser and exit	if( $aCachedName!="" && READ_CACHE && $aInline )	    if( $this->cache->GetAndStream($aCachedName) ) {		exit();	    }					$this->cache_name = $aCachedName;	$this->SetTickDensity(); // Normal density	$this->tabtitle = new GraphTabTitle();    }//---------------// PUBLIC METHODS	    // Enable final image perspective transformation    function Set3DPerspective($aDir=1,$aHorizon=100,$aSkewDist=120,$aQuality=false,$aFillColor='#FFFFFF',$aBorder=false,$aMinSize=true,$aHorizonPos=0.5) {	$this->iImgTrans = true;	$this->iImgTransHorizon = $aHorizon;	$this->iImgTransSkewDist= $aSkewDist;	$this->iImgTransDirection = $aDir;	$this->iImgTransMinSize = $aMinSize;	$this->iImgTransFillColor=$aFillColor;	$this->iImgTransHighQ=$aQuality;	$this->iImgTransBorder=$aBorder;	$this->iImgTransHorizonPos=$aHorizonPos;    }    // Set Image format and optional quality    function SetImgFormat($aFormat,$aQuality=75) {	$this->img->SetImgFormat($aFormat,$aQuality);    }    // Should the grid be in front or back of the plot?    function SetGridDepth($aDepth) {	$this->grid_depth=$aDepth;    }    function SetIconDepth($aDepth) {	$this->iIconDepth=$aDepth;    }	    // Specify graph angle 0-360 degrees.    function SetAngle($aAngle) {	$this->img->SetAngle($aAngle);    }    function SetAlphaBlending($aFlg=true) {	$this->img->SetAlphaBlending($aFlg);    }    // Shortcut to image margin    function SetMargin($lm,$rm,$tm,$bm) {	$this->img->SetMargin($lm,$rm,$tm,$bm);    }    function SetY2OrderBack($aBack=true) {	$this->y2orderback = $aBack;    }    // Rotate the graph 90 degrees and set the margin     // when we have done a 90 degree rotation    function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) {	$lm = $lm ==0 ? floor(0.2 * $this->img->width)  : $lm ;	$rm = $rm ==0 ? floor(0.1 * $this->img->width)  : $rm ;	$tm = $tm ==0 ? floor(0.2 * $this->img->height) : $tm ;	$bm = $bm ==0 ? floor(0.1 * $this->img->height) : $bm ;	$adj = ($this->img->height - $this->img->width)/2;	$this->img->SetMargin($tm-$adj,$bm-$adj,$rm+$adj,$lm+$adj);	$this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2));	$this->SetAngle(90);	if( empty($this->yaxis) || empty($this->xaxis) ) {	    JpgraphError::RaiseL(25009);//('You must specify what scale to use with a call to Graph::SetScale()');	}	$this->xaxis->SetLabelAlign('right','center');	$this->yaxis->SetLabelAlign('center','bottom');    }	    function SetClipping($aFlg=true) {	$this->iDoClipping = $aFlg ;    }    // Add a plot object to the graph    function Add(&$aPlot) {	if( $aPlot == null )	    JpGraphError::RaiseL(25010);//("Graph::Add() You tried to add a null plot to the graph.");	if( is_array($aPlot) && count($aPlot) > 0 )	    $cl = $aPlot[0];	else	    $cl = $aPlot;	if( is_a($cl,'Text') ) 	    $this->AddText($aPlot);	elseif( is_a($cl,'PlotLine') )	    $this->AddLine($aPlot);	elseif( is_a($cl,'PlotBand') )	    $this->AddBand($aPlot);	elseif( is_a($cl,'IconPlot') )	    $this->AddIcon($aPlot);	elseif( is_a($cl,'GTextTable') )	    $this->AddTable($aPlot);	else	    $this->plots[] = &$aPlot;    }    function AddTable(&$aTable) {	if( is_array($aTable) ) {	    for($i=0; $i < count($aTable); ++$i )		$this->iTables[]=&$aTable[$i];	}	else {	    $this->iTables[] = &$aTable ;	}	    }    function AddIcon(&$aIcon) {	if( is_array($aIcon) ) {	    for($i=0; $i < count($aIcon); ++$i )		$this->iIcons[]=&$aIcon[$i];	}	else {	    $this->iIcons[] = &$aIcon ;	}	    }    // Add plot to second Y-scale    function AddY2(&$aPlot) {	if( $aPlot == null )	    JpGraphError::RaiseL(25011);//("Graph::AddY2() You tried to add a null plot to the graph.");		if( is_array($aPlot) && count($aPlot) > 0 )	    $cl = $aPlot[0];	else	    $cl = $aPlot;	if( is_a($cl,'Text') ) 	    $this->AddText($aPlot,true);	elseif( is_a($cl,'PlotLine') )	    $this->AddLine($aPlot,true);	elseif( is_a($cl,'PlotBand') )	    $this->AddBand($aPlot,true);	else	    $this->y2plots[] = &$aPlot;    }    // Add plot to second Y-scale    function AddY($aN,&$aPlot) {	if( $aPlot == null )	    JpGraphError::RaiseL(25012);//("Graph::AddYN() You tried to add a null plot to the graph.");		if( is_array($aPlot) && count($aPlot) > 0 )	    $cl = $aPlot[0];	else	    $cl = $aPlot;	if( is_a($cl,'Text') || is_a($cl,'PlotLine') || is_a($cl,'PlotBand') )	    JpGraph::RaiseL(25013);//('You can only add standard plots to multiple Y-axis');	else	    $this->ynplots[$aN][] = &$aPlot;    }        // Add text object to the graph    function AddText(&$aTxt,$aToY2=false) {	if( $aTxt == null )	    JpGraphError::RaiseL(25014);//("Graph::AddText() You tried to add a null text to the graph.");			if( $aToY2 ) {	    if( is_array($aTxt) ) {		for($i=0; $i < count($aTxt); ++$i )		    $this->y2texts[]=&$aTxt[$i];	    }	    else		$this->y2texts[] = &$aTxt;	}	else {	    if( is_array($aTxt) ) {		for($i=0; $i < count($aTxt); ++$i )		    $this->texts[]=&$aTxt[$i];	    }	    else		$this->texts[] = &$aTxt;	}    }	    // Add a line object (class PlotLine) to the graph    function AddLine(&$aLine,$aToY2=false) {	if( $aLine == null )	    JpGraphError::RaiseL(25015);//("Graph::AddLine() You tried to add a null line to the graph.");		if( $aToY2 ) { 	    if( is_array($aLine) ) {		for($i=0; $i < count($aLine); ++$i )		    $this->y2lines[]=&$aLine[$i];	    }	    else		$this->y2lines[] = &$aLine;	}	else { 	    if( is_array($aLine) ) {		for($i=0; $i < count($aLine); ++$i )		    $this->lines[]=&$aLine[$i];	    }	    else		$this->lines[] = &$aLine;	}    }    // Add vertical or horizontal band    function AddBand(&$aBand,$aToY2=false) {	if( $aBand == null )	    JpGraphError::RaiseL(25016);//(" Graph::AddBand() You tried to add a null band to the graph.");	if( $aToY2 ) {	    if( is_array($aBand) ) {		for($i=0; $i < count($aBand); ++$i )		    $this->y2bands[] = &$aBand[$i];	    }	    else		$this->y2bands[] = &$aBand;	}	else {	    if( is_array($aBand) ) {		for($i=0; $i < count($aBand); ++$i )		    $this->bands[] = &$aBand[$i];	    }	    else		$this->bands[] = &$aBand;	}    }    function SetBackgroundGradient($aFrom='navy',$aTo='silver',$aGradType=2,$aStyle=BGRAD_FRAME) {	$this->bkg_gradtype=$aGradType;	$this->bkg_gradstyle=$aStyle;	$this->bkg_gradfrom = $aFrom;	$this->bkg_gradto = $aTo;    } 	    // Set a country flag in the background    function SetBackgroundCFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {	$this->background_cflag = $aName;	$this->background_cflag_type = $aBgType;	$this->background_cflag_mix = $aMix;    }    // Alias for the above method    function SetBackgroundCountryFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {	$this->background_cflag = $aName;	$this->background_cflag_type = $aBgType;	$this->background_cflag_mix = $aMix;    }    // Specify a background image    function SetBackgroundImage($aFileName,$aBgType=BGIMG_FILLPLOT,$aImgFormat="auto") {	if( $GLOBALS['gd2'] && !USE_TRUECOLOR ) {	    JpGraphError::RaiseL(25017);//("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x you <b>must</b> enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.");	}	// Get extension to determine image type	if( $aImgFormat == "auto" ) {	    $e = explode('.',$aFileName);	    if( !$e ) {		JpGraphError::RaiseL(25018,$aFileName);//('Incorrect file name for Graph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type');	    }	    $valid_formats = array('png', 'jpg', 'gif');	    $aImgFormat = strtolower($e[count($e)-1]);	    if ($aImgFormat == 'jpeg')  {		$aImgFormat = 'jpg';	    }	    elseif (!in_array($aImgFormat, $valid_formats) )  {		JpGraphError::RaiseL(25019,$aImgFormat);//('Unknown file extension ($aImgFormat) in Graph::SetBackgroundImage() for filename: '.$aFileName);	    }    	}	$this->background_image = $aFileName;	$this->background_image_type=$aBgType;	$this->background_image_format=$aImgFormat;    }    function SetBackgroundImageMix($aMix) {	$this->background_image_mix = $aMix ;    }	    // Adjust brightness and constrast for background image    function AdjBackgroundImage($aBright,$aContr=0,$aSat=0) {	$this->background_image_bright=$aBright;	$this->background_image_contr=$aContr;	$this->background_image_sat=$aSat;    }	    // Adjust brightness and constrast for image    function AdjImage($aBright,$aContr=0,$aSat=0) {	$this->image_bright=$aBright;	$this->image_contr=$aContr;	$this->image_sat=$aSat;    }    // Specify axis style (boxed or single)    function SetAxisStyle($aStyle) {        $this->iAxisStyle = $aStyle ;    }	    // Set a frame around the plot area    function SetBox($aDrawPlotFrame=true,$aPlotFrameColor=array(0,0,0),$aPlotFrameWeight=1) {	$this->boxed = $aDrawPlotFrame;	$this->box_weight = $aPlotFrameWeight;	$this->box_color = $aPlotFrameColor;    }	    // Specify color for the plotarea (not the margins)    function SetColor($aColor) {	$this->plotarea_color=$aColor;    }	    // Specify color for the margins (all areas outside the plotarea)    function SetMarginColor($aColor) {	$this->margin_color=$aColor;    }	    // Set a frame around the entire image    function SetFrame($aDrawImgFrame=true,$aImgFrameColor=array(0,0,0),$aImgFrameWeight=1) {	$this->doframe = $aDrawImgFrame;	$this->frame_color = $aImgFrameColor;	$this->frame_weight = $aImgFrameWeight;    }    function SetFrameBevel($aDepth=3,$aBorder=false,$aBorderColor='black',$aColor1='white@0.4',$aColor2='darkgray@0.4',$aFlg=true) {	$this->framebevel = $aFlg ;	$this->framebeveldepth = $aDepth ;	$this->framebevelborder = $aBorder ;	$this->framebevelbordercolor = $aBorderColor ;	$this->framebevelcolor1 = $aColor1 ;	$this->framebevelcolor2 = $aColor2 ;	$this->doshadow = false ;    }    // Set the shadow around the whole image    function SetShadow($aShowShadow=true,$aShadowWidth=5,$aShadowColor=array(102,102,102)) {	$this->doshadow = $aShowShadow;	$this->shadow_color = $aShadowColor;	$this->shadow_width = $aShadowWidth;

⌨️ 快捷键说明

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