<?
    $_id 
= isset($_GET['i']) ? intval($_GET['i']) : 0;
    
$_borders = isset($_GET['borders']) ? trim(strval($_GET['borders'])) : 'TLTCTRMLMCMRBLBCBR';
    
    if (
$_id && $_x && $_y)
    {
        
$quilts mysql_query("SELECT * FROM quilts WHERE id = " sq($_id));
        if (
$quilts_row mysql_fetch_assoc($quilts))
        {
            
//DO THE IMAGE WRAP THING
            
$x_minus $_x 1;
            
$x_plus $_x 1;
            
$y_minus $_y 1;
            
$y_plus $_y 1;
            if (
$quilts_row['edge_wrap'] == || $quilts_row['edge_wrap'] == 3)
            {
                if (
$x_minus 1)
                {
                    
$x_minus $quilts_row['quilt_width'];
                }
                if (
$x_plus $quilts_row['quilt_width'])
                {
                    
$x_plus 1;
                }
            }
            if (
$quilts_row['edge_wrap'] == || $quilts_row['edge_wrap'] == 3)
            {
                if (
$y_minus 1)
                {
                    
$y_minus $quilts_row['quilt_height'];
                }
                if (
$y_plus $quilts_row['quilt_height'])
                {
                    
$y_plus 1;
                }
            }
            
//CREATE THE IMAGE
            
$im_dest imagecreatetruecolor($quilts_row['tile_width'] + $quilts_row['side_pixels'] * 2$quilts_row['tile_height'] + $quilts_row['side_pixels'] * 2);
            
$grey1 imagecolorallocate($im_dest128128128);
            
$grey2 imagecolorallocate($im_dest646464);
            
$xcols $quilts_row['tile_width'] + $quilts_row['side_pixels'] * 2;
            
$ycols $quilts_row['tile_height'] + $quilts_row['side_pixels'] * 2;
            
$x 0;
            while (
$x $xcols 8)
            {
                
$y 0;
                while (
$y $ycols 8)
                {
                    
imagefilledrectangle($im_dest$x 8$y 8$x 8$y 8, (($y $x) % == $grey1 $grey2));
                    
$y++;
                }
                
$x++;
            }
            
//imagefill($im_dest, 0, 0, 0);
            
$white imagecolorallocate($im_dest255255255);
            
imagefilledrectangle($im_dest$quilts_row['side_pixels'], $quilts_row['side_pixels'], $quilts_row['tile_width'] + $quilts_row['side_pixels'] - 1$quilts_row['tile_height'] + $quilts_row['side_pixels'] - 1$white);
            
//TOP LEFT
            
$pos strpos($_borders'TL');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_minus "' AND matrix_y = '" $y_minus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src00$quilts_row['tile_width'] - $quilts_row['side_pixels'], $quilts_row['tile_height'] - $quilts_row['side_pixels'], $quilts_row['side_pixels'], $quilts_row['side_pixels']);
                }
            }
            
//TOP CENTER
            
$pos strpos($_borders'TC');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $_x "' AND matrix_y = '" $y_minus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['side_pixels'], 00$quilts_row['tile_height'] - $quilts_row['side_pixels'], $quilts_row['tile_width'], $quilts_row['side_pixels']);
                }
            }
            
//TOP RIGHT
            
$pos strpos($_borders'TR');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_plus "' AND matrix_y = '" $y_minus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['tile_width'] + $quilts_row['side_pixels'], 00$quilts_row['tile_height'] - $quilts_row['side_pixels'], $quilts_row['side_pixels'], $quilts_row['side_pixels']);
                }
            }
            
//MIDDLE LEFT
            
$pos strpos($_borders'ML');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_minus "' AND matrix_y = '" $_y "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src0$quilts_row['side_pixels'], $quilts_row['tile_width'] - $quilts_row['side_pixels'], 0$quilts_row['side_pixels'], $quilts_row['tile_height']);
                }
            }
            
//MIDDLE CENTER
            
$pos strpos($_borders'MC');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $_x "' AND matrix_y = '" $_y "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['side_pixels'], $quilts_row['side_pixels'], 00$quilts_row['tile_width'], $quilts_row['tile_height']);
                }
            }
            
//MIDDLE RIGHT
            
$pos strpos($_borders'MR');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_plus "' AND matrix_y = '" $_y "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['tile_width'] + $quilts_row['side_pixels'], $quilts_row['side_pixels'], 00$quilts_row['side_pixels'], $quilts_row['tile_height']);
                }
            }
            
//BOTTOM LEFT
            
$pos strpos($_borders'BL');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_minus "' AND matrix_y = '" $y_plus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src0$quilts_row['tile_height'] + $quilts_row['side_pixels'], $quilts_row['tile_width'] - $quilts_row['side_pixels'], 0$quilts_row['side_pixels'], $quilts_row['side_pixels']);
                }
            }
            
//BOTTOM CENTER
            
$pos strpos($_borders'BC');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $_x "' AND matrix_y = '" $y_plus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['side_pixels'], $quilts_row['tile_height'] + $quilts_row['side_pixels'], 00$quilts_row['tile_width'], $quilts_row['side_pixels']);
                }
            }
            
//BOTTOM RIGHT
            
$pos strpos($_borders'BR');
            if (
$pos !== false)
            {
                
$tiles_new mysql_query("SELECT * FROM tiles WHERE quilt_id = '" $quilts_row['id'] . "' AND matrix_x = '" $x_plus "' AND matrix_y = '" $y_plus "' AND deleted = '0'");
                if (
$tiles_new_row mysql_fetch_assoc($tiles_new))
                {
                    
$im_src imagecreatefromstring($tiles_new_row['data_tile']);
                    
imagecopy($im_dest$im_src$quilts_row['tile_width'] + $quilts_row['side_pixels'], $quilts_row['tile_height'] + $quilts_row['side_pixels'], 00$quilts_row['side_pixels'], $quilts_row['side_pixels']);
                }
            }
            
header('content-type: image/png');
            
header('content-disposition: inline; filename="' $quilts_row['id'] . '_' $_x '_' $_y '.png"');    
            
imagepng($im_dest);
        }
        else
        {
            
display_empty_image();
        }
    }
    else
    {
        
display_empty_image();
    }

    function 
display_empty_image()
    {
        
$im imagecreatetruecolor(intval(200 + (SIDE_PIXELS 2)), intval(200 + (SIDE_PIXELS 2)));
        
imagefill($im000);
        
$white imagecolorallocate($im255255255);
        
imagefilledrectangle($imSIDE_PIXELSSIDE_PIXELS200 SIDE_PIXELS 1200 SIDE_PIXELS 1$white);
        
header ("Content-type: image/png");
        
header('content-disposition: inline; filename="empty.png"');
        
imagepng($im);
    }
?>