<?php
 
    /**
 
     * Color preview
 
     * Remove delete feature if field is empty and only apply if its the last field
 
     * Add a feature to use last post code as some sort of backup when "making"
 
     * Make output type
 
     * Color picker
 
     */
 
 
    session_start();
 
 
    require_once('./gradientgd.class.php');
 
 
    if($_REQUEST['do'] == 'make')
 
    {
 
        @set_time_limit(0);
 
 
        # $_POST = unserialize($_SESSION['postcode']);
 
 
        $gradient =& new GradientGD($_POST['size_width'], $_POST['size_height']);
 
 
        $gradient->set_option('imagetype', 'jpg');
 
        $gradient->set_option('colorhandler', 'RGB');
 
        $gradient->set_option('reverse', false);
 
 
        $gradient->set_color(explode(',', str_replace(' ', '', $_POST['color_start'])), 'start');
 
        $gradient->set_color(explode(',', str_replace(' ', '', $_POST['color_end'])), 'end');
 
 
        if(is_array($_POST['color_multiple']) && sizeof($_POST['color_multiple']))
 
        {
 
            foreach($_POST['color_multiple'] as $multi => $value)
 
            {
 
                $_POST['color_multiple'][$multi] = explode(',', str_replace(' ', '', $value));
 
            }
 
 
            $gradient->set_color($_POST['color_multiple'], 'middle');
 
        }
 
/*
 
        $gradient->set_color(Array($_POST['color_multiple']), 'middle');
 
*/
 
/*
 
        $gradient->set_color(Array(
 
                        Array(222, 0, 255), 
 
                        Array(123, 0 ,255), 
 
                        Array(24, 0, 255), 
 
                        Array(0, 57, 255), 
 
                        Array(0, 156, 255), 
 
                        Array(0, 255, 255), 
 
                        Array(0, 255, 156), 
 
                        Array(0, 255, 57), 
 
                        Array(24, 255, 0), 
 
                        Array(140, 255, 0), 
 
                        Array(239, 255, 0), 
 
                        Array(255, 189, 0), 
 
                        Array(255, 90, 0), 
 
 
                        ), 'middle');
 
*/
 
 
        $gradient->generate();
 
 
        if(!isset($_SESSION['postcode']))
 
        {
 
            $_SESSION['postcode'] = serialize($_POST);
 
        }
 
    }
 
    else
 
    {
 
        echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
 
?>
 
<html>
 
    <head>
 
        <title>Gradient GD Generator</title>
 
 
        <script type="text/javascript">
 
        <!--
 
        var multiple_array = Array();
 
 
        function multiple_new(defaultvalue)
 
        {
 
            multiple_array[multiple_array.length] = defaultvalue;
 
            multiple_generate();
 
        }
 
        function multiple_modify(colorid, newvalue)
 
        {
 
            var colorinstance = document.getElementById('color_' + colorid);
 
 
            if(newvalue == "")
 
            {
 
                multiple_delete(colorid);
 
            }
 
            else
 
            {
 
                multiple_array[colorid] = newvalue;
 
                multiple_generate();
 
            }
 
        }
 
        function multiple_delete(colorid)
 
        {
 
            var i = 0;
 
            var colorinstance = document.getElementById('color_' + colorid);
 
            var updated_array = Array();
 
 
            while(i < multiple_array.length)
 
            {
 
                if(colorid != i)
 
                {
 
                    updated_array[i] = multiple_array[i];
 
                }
 
 
                ++i;
 
 
            }
 
 
            multiple_array = updated_array;
 
            multiple_generate();
 
        }
 
        function multiple_generate()
 
        {
 
            var html = "";
 
 
            if(multiple_array.length)
 
            {
 
                html = html + "<table>";
 
 
                for(var i = 0; i < multiple_array.length; ++i)
 
                {
 
                    html = html + "<tr>";
 
                    html = html + "<td class=\"bin\"><strong>Color #" + (i + 1) + ":</strong></td>";
 
                    html = html + "<td>";
 
                    html = html + "<input type=\"text\" id=\"color_" + i + "\" name=\"color_multiple[]\" onblur=\"multiple_modify('" + i + "', this.value);\" value=\"" + multiple_array[i] + "\" /> ";
 
                    html = html + "<span class=\"notice\">RGB Value; Split with commas</span>";
 
 
                    if(i == (multiple_array.length - 1))
 
                    {
 
                        html = html + "<a href=\"javascript:void(0);\" onclick=\"multiple_delete(" + i + ");\">(X)</a>";
 
                    }
 
 
                    html = html + "</td>";
 
                    html = html + "</tr>";
 
                }
 
 
                html = html + "</table>";
 
            }
 
 
            document.getElementById('multiplecolors').innerHTML = html;
 
        }
 
        // -->
 
        </script>
 
 
        <style type="text/css">
 
        <!--
 
        * { color: #444444; font: 8pt Verdana, Arial, Sans-serif; }
 
        a { color: #0088E4; margin-left: 50px; text-decoration: underline; }
 
        h1 { background-color: #F1F7F7; font-size: 10pt; }
 
        h1, .container { margin: 50px 50px 0px 50px; padding: 10px; }
 
        input { background-color: #FFFFFF; border: 1px solid #AAAAAA; height: 20px; padding: 3px; }
 
        .container { margin-top: 0px; }
 
        .container h2 { font-size: 9pt; margin: 0px 0px 20px 0px; }
 
        .container strong { font-weight: bold; }
 
        .container table { margin-left: 50px; width: 60%; }
 
        .container td { background-color: #F1F7F7; padding: 7px; }
 
        .container td.bin { width: 30%; }
 
        .container td span.notice { font-size: 7pt; }
 
        .submit { float: right; }
 
        .submit input { color: #0088E4; padding: 2px 0px; }
 
        // -->
 
        </style>
 
    </head>
 
    <body>
 
        <form action="./gradientgd.box.php?do=make" method="post">
 
            <h1>Gradient Generator</h1>
 
            <div class="container">
 
                <h2>Dimensions</h2>
 
                <table>
 
                    <tr>
 
                        <td class="bin">
 
                            <strong>Height:</strong></td>
 
                        <td>
 
                            <input type="text" name="size_height" value="100" />
 
                            <span class="notice">Pixels</span></td>
 
                    </tr>
 
                    <tr>
 
                        <td class="bin">
 
                            <strong>Width:</strong></td>
 
                        <td>
 
                            <input type="text" name="size_width" value="100" />
 
                            <span class="notice">Pixels</span></td>
 
                    </tr>
 
                </table>
 
 
                <br />
 
                <h2>Colors</h2>
 
                <table>
 
                    <tr>
 
                        <td class="bin">
 
                            <strong>Start Color:</strong></td>
 
                        <td>
 
                            <input type="text" name="color_start" value="0,0,0" />
 
                            <span class="notice">RGB Value; Split with commas</span></td>
 
                    </tr>
 
                    <tr>
 
                        <td class="bin">
 
                            <strong>End Color:</strong></td>
 
                        <td>
 
                            <input type="text" name="color_end" value="255,255,255" />
 
                            <span class="notice">RGB Value; Split with commas</span></td>
 
                    </tr>
 
                </table>
 
 
                <br />
 
 
                <h2>Multple Color Fade</h2>
 
                <div id="multiplecolors"></div>
 
                <a href="javascript:void(0);" onclick="multiple_new('0,0,0');">
 
                    New Color</a>
 
 
                <br />
 
                <div class="submit">
 
                    <input type="submit" value=" Generate " />
 
                </div>
 
            </div>
 
        </form>
 
<!--
 
<pre style="font: 11px Monaco Courier, Monospace;"><?php var_dump(unserialize($_SESSION['postcode'])); ?></pre>
 
-->
 
    </body>
 
<?php
 
        echo("</html>");
 
    }
 
?>
 
 |