[42] | 1 | <?php // content="text/plain; charset=utf-8"
|
---|
| 2 | //=======================================================================
|
---|
| 3 | // File: MKGRAD.PHP
|
---|
| 4 | // Description: Simple tool to create a gradient background
|
---|
| 5 | // Ver: $Id$
|
---|
| 6 | //=======================================================================
|
---|
| 7 |
|
---|
| 8 | // Basic library classes
|
---|
| 9 | require_once ('jpgraph/jpgraph.php');
|
---|
| 10 | require_once ('jpgraph/jpgraph_bar.php');
|
---|
| 11 | require_once ('jpgraph/jpgraph_canvas.php');
|
---|
| 12 |
|
---|
| 13 |
|
---|
| 14 | // Must have a global comparison method for usort()
|
---|
| 15 | function _cmp($a,$b) {
|
---|
| 16 | return strcmp($a,$b);
|
---|
| 17 | }
|
---|
| 18 |
|
---|
| 19 | // Generate the input form
|
---|
| 20 | class Form {
|
---|
| 21 | var $iColors;
|
---|
| 22 | var $iGradstyles;
|
---|
| 23 | function Form() {
|
---|
| 24 |
|
---|
| 25 | $rgb = new RGB();
|
---|
| 26 | $this->iColors = array_keys($rgb->rgb_table);
|
---|
| 27 | usort($this->iColors,'_cmp');
|
---|
| 28 |
|
---|
| 29 | $this->iGradstyles = array(
|
---|
| 30 | "Vertical",2,
|
---|
| 31 | "Horizontal",1,
|
---|
| 32 | "Vertical from middle",3,
|
---|
| 33 | "Horizontal from middle",4,
|
---|
| 34 | "Horizontal wider middle",6,
|
---|
| 35 | "Vertical wider middle",7,
|
---|
| 36 | "Rectangle",5 );
|
---|
| 37 | }
|
---|
| 38 |
|
---|
| 39 | function Run() {
|
---|
| 40 |
|
---|
| 41 | echo '<h3>Generate gradient background</h3>';
|
---|
| 42 | echo '<form METHOD=POST action=""><table style="border:blue solid 1;">';
|
---|
| 43 | echo '<tr><td>Width:<br>'.$this->GenHTMLInput('w',8,4,300).'</td>';
|
---|
| 44 | echo "\n";
|
---|
| 45 | echo '<td>Height:<br>'.$this->GenHTMLInput('h',8,4,300).'</td></tr>';
|
---|
| 46 | echo "\n";
|
---|
| 47 | echo '<tr><td>From Color:<br>';
|
---|
| 48 | echo $this->GenHTMLSelect('fc',$this->iColors);
|
---|
| 49 | echo '</td><td>To Color:<br>';
|
---|
| 50 | echo $this->GenHTMLSelect('tc',$this->iColors);
|
---|
| 51 | echo '</td></tr>';
|
---|
| 52 | echo '<tr><td colspan=2>Gradient style:<br>';
|
---|
| 53 | echo $this->GenHTMLSelectCode('s',$this->iGradstyles);
|
---|
| 54 | echo '</td></tr>';
|
---|
| 55 | echo '<tr><td colspan=2>Filename: (empty to stream)<br>';
|
---|
| 56 | echo $this->GenHTMLInput('fn',55,100);
|
---|
| 57 | echo '</td></tr>';
|
---|
| 58 | echo '<tr><td colspan=2 align=right>'.$this->GenHTMLSubmit('submit').'</td></tr>';
|
---|
| 59 | echo '</table>';
|
---|
| 60 | echo '</form>';
|
---|
| 61 |
|
---|
| 62 | }
|
---|
| 63 |
|
---|
| 64 | function GenHTMLSubmit($name) {
|
---|
| 65 | return '<INPUT TYPE=submit name="ok" value=" Ok " >';
|
---|
| 66 | }
|
---|
| 67 |
|
---|
| 68 |
|
---|
| 69 | function GenHTMLInput($name,$len,$maxlen=100,$val='') {
|
---|
| 70 | return '<INPUT TYPE=TEXT NAME='.$name.' VALUE="'.$val.'" SIZE='.$len.' MAXLENGTH='.$maxlen.'>';
|
---|
| 71 | }
|
---|
| 72 |
|
---|
| 73 | function GenHTMLSelect($name,$option,$selected="",$size=0) {
|
---|
| 74 | $txt="<select name=$name";
|
---|
| 75 | if( $size > 0 )
|
---|
| 76 | $txt .= " size=$size >";
|
---|
| 77 | else
|
---|
| 78 | $txt .= ">";
|
---|
| 79 | for($i=0; $i<count($option); $i++) {
|
---|
| 80 | if( $selected==$option[$i] )
|
---|
| 81 | $txt=$txt."<option selected value=\"$option[$i]\">$option[$i]</option>\n";
|
---|
| 82 | else
|
---|
| 83 | $txt=$txt."<option value=\"".$option[$i]."\">$option[$i]</option>\n";
|
---|
| 84 | }
|
---|
| 85 | return $txt."</select>\n";
|
---|
| 86 | }
|
---|
| 87 |
|
---|
| 88 | function GenHTMLSelectCode($name,$option,$selected="",$size=0) {
|
---|
| 89 | $txt="<select name=$name";
|
---|
| 90 | if( $size > 0 )
|
---|
| 91 | $txt .= " size=$size >";
|
---|
| 92 | else
|
---|
| 93 | $txt .= ">";
|
---|
| 94 | for($i=0; $i<count($option); $i += 2) {
|
---|
| 95 | if( $selected==$option[($i+1)] )
|
---|
| 96 | $txt=$txt."<option selected value=".$option[($i+1)].">$option[$i]</option>\n";
|
---|
| 97 | else
|
---|
| 98 | $txt=$txt."<option value=\"".$option[($i+1)]."\">$option[$i]</option>\n";
|
---|
| 99 | }
|
---|
| 100 | return $txt."</select>\n";
|
---|
| 101 | }
|
---|
| 102 |
|
---|
| 103 | }
|
---|
| 104 |
|
---|
| 105 | // Basic application driver
|
---|
| 106 |
|
---|
| 107 | class Driver {
|
---|
| 108 | var $iGraph, $iGrad;
|
---|
| 109 | var $iWidth,$iHeight;
|
---|
| 110 | var $iFromColor, $iToColor;
|
---|
| 111 | var $iStyle;
|
---|
| 112 | var $iForm;
|
---|
| 113 |
|
---|
| 114 | function Driver() {
|
---|
| 115 | $this->iForm = new Form();
|
---|
| 116 | }
|
---|
| 117 |
|
---|
| 118 | function GenGradImage() {
|
---|
| 119 |
|
---|
| 120 | $aWidth = (int)@$_POST['w'];
|
---|
| 121 | $aHeight = (int)@$_POST['h'];
|
---|
| 122 | $aFrom = @$_POST['fc'];
|
---|
| 123 | $aTo = @$_POST['tc'];
|
---|
| 124 | $aStyle = @$_POST['s'];
|
---|
| 125 | $aFileName = @$_POST['fn'];
|
---|
| 126 |
|
---|
| 127 | $this->iWidth = $aWidth;
|
---|
| 128 | $this->iHeight = $aHeight;
|
---|
| 129 | $this->iFromColor = $aFrom;
|
---|
| 130 | $this->iToColor = $aTo;
|
---|
| 131 | $this->iStyle = $aStyle;
|
---|
| 132 |
|
---|
| 133 | $this->graph = new CanvasGraph($aWidth,$aHeight);
|
---|
| 134 | $this->grad = new Gradient($this->graph->img);
|
---|
| 135 | $this->grad->FilledRectangle(0,0,
|
---|
| 136 | $this->iWidth,$this->iHeight,
|
---|
| 137 | $this->iFromColor,
|
---|
| 138 | $this->iToColor,
|
---|
| 139 | $this->iStyle);
|
---|
| 140 |
|
---|
| 141 | if( $aFileName != "" ) {
|
---|
| 142 | $this->graph->Stroke($aFileName);
|
---|
| 143 | echo "Image file '$aFileName' created.";
|
---|
| 144 | }
|
---|
| 145 | else
|
---|
| 146 | $this->graph->Stroke();
|
---|
| 147 | }
|
---|
| 148 |
|
---|
| 149 |
|
---|
| 150 | function Run() {
|
---|
| 151 |
|
---|
| 152 | global $HTTP_POST_VARS;
|
---|
| 153 |
|
---|
| 154 | // Two modes:
|
---|
| 155 | // 1) If the script is called with no posted arguments
|
---|
| 156 | // we show the input form.
|
---|
| 157 | // 2) If we have posted arguments we naivly assume that
|
---|
| 158 | // we are called to do the image.
|
---|
| 159 |
|
---|
| 160 | if( @$_POST['ok']===' Ok ' ) {
|
---|
| 161 | $this->GenGradImage();
|
---|
| 162 | }
|
---|
| 163 | else
|
---|
| 164 | $this->iForm->Run();
|
---|
| 165 | }
|
---|
| 166 | }
|
---|
| 167 |
|
---|
| 168 | $driver = new Driver();
|
---|
| 169 | $driver->Run();
|
---|
| 170 |
|
---|
| 171 | ?>
|
---|