Files
pannello/jpgraph-3.5.0b1/src/Examples/mkgrad.php
2015-10-08 11:00:52 +02:00

172 lines
4.3 KiB
PHP

<?php // content="text/plain; charset=utf-8"
//=======================================================================
// File: MKGRAD.PHP
// Description: Simple tool to create a gradient background
// Ver: $Id$
//=======================================================================
// Basic library classes
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php');
require_once ('jpgraph/jpgraph_canvas.php');
// Must have a global comparison method for usort()
function _cmp($a,$b) {
return strcmp($a,$b);
}
// Generate the input form
class Form {
var $iColors;
var $iGradstyles;
function Form() {
$rgb = new RGB();
$this->iColors = array_keys($rgb->rgb_table);
usort($this->iColors,'_cmp');
$this->iGradstyles = array(
"Vertical",2,
"Horizontal",1,
"Vertical from middle",3,
"Horizontal from middle",4,
"Horizontal wider middle",6,
"Vertical wider middle",7,
"Rectangle",5 );
}
function Run() {
echo '<h3>Generate gradient background</h3>';
echo '<form METHOD=POST action=""><table style="border:blue solid 1;">';
echo '<tr><td>Width:<br>'.$this->GenHTMLInput('w',8,4,300).'</td>';
echo "\n";
echo '<td>Height:<br>'.$this->GenHTMLInput('h',8,4,300).'</td></tr>';
echo "\n";
echo '<tr><td>From Color:<br>';
echo $this->GenHTMLSelect('fc',$this->iColors);
echo '</td><td>To Color:<br>';
echo $this->GenHTMLSelect('tc',$this->iColors);
echo '</td></tr>';
echo '<tr><td colspan=2>Gradient style:<br>';
echo $this->GenHTMLSelectCode('s',$this->iGradstyles);
echo '</td></tr>';
echo '<tr><td colspan=2>Filename: (empty to stream)<br>';
echo $this->GenHTMLInput('fn',55,100);
echo '</td></tr>';
echo '<tr><td colspan=2 align=right>'.$this->GenHTMLSubmit('submit').'</td></tr>';
echo '</table>';
echo '</form>';
}
function GenHTMLSubmit($name) {
return '<INPUT TYPE=submit name="ok" value=" Ok " >';
}
function GenHTMLInput($name,$len,$maxlen=100,$val='') {
return '<INPUT TYPE=TEXT NAME='.$name.' VALUE="'.$val.'" SIZE='.$len.' MAXLENGTH='.$maxlen.'>';
}
function GenHTMLSelect($name,$option,$selected="",$size=0) {
$txt="<select name=$name";
if( $size > 0 )
$txt .= " size=$size >";
else
$txt .= ">";
for($i=0; $i<count($option); $i++) {
if( $selected==$option[$i] )
$txt=$txt."<option selected value=\"$option[$i]\">$option[$i]</option>\n";
else
$txt=$txt."<option value=\"".$option[$i]."\">$option[$i]</option>\n";
}
return $txt."</select>\n";
}
function GenHTMLSelectCode($name,$option,$selected="",$size=0) {
$txt="<select name=$name";
if( $size > 0 )
$txt .= " size=$size >";
else
$txt .= ">";
for($i=0; $i<count($option); $i += 2) {
if( $selected==$option[($i+1)] )
$txt=$txt."<option selected value=".$option[($i+1)].">$option[$i]</option>\n";
else
$txt=$txt."<option value=\"".$option[($i+1)]."\">$option[$i]</option>\n";
}
return $txt."</select>\n";
}
}
// Basic application driver
class Driver {
var $iGraph, $iGrad;
var $iWidth,$iHeight;
var $iFromColor, $iToColor;
var $iStyle;
var $iForm;
function Driver() {
$this->iForm = new Form();
}
function GenGradImage() {
$aWidth = (int)@$_POST['w'];
$aHeight = (int)@$_POST['h'];
$aFrom = @$_POST['fc'];
$aTo = @$_POST['tc'];
$aStyle = @$_POST['s'];
$aFileName = @$_POST['fn'];
$this->iWidth = $aWidth;
$this->iHeight = $aHeight;
$this->iFromColor = $aFrom;
$this->iToColor = $aTo;
$this->iStyle = $aStyle;
$this->graph = new CanvasGraph($aWidth,$aHeight);
$this->grad = new Gradient($this->graph->img);
$this->grad->FilledRectangle(0,0,
$this->iWidth,$this->iHeight,
$this->iFromColor,
$this->iToColor,
$this->iStyle);
if( $aFileName != "" ) {
$this->graph->Stroke($aFileName);
echo "Image file '$aFileName' created.";
}
else
$this->graph->Stroke();
}
function Run() {
global $HTTP_POST_VARS;
// Two modes:
// 1) If the script is called with no posted arguments
// we show the input form.
// 2) If we have posted arguments we naivly assume that
// we are called to do the image.
if( @$_POST['ok']===' Ok ' ) {
$this->GenGradImage();
}
else
$this->iForm->Run();
}
}
$driver = new Driver();
$driver->Run();
?>