Version: 1.0.0
Type: Full Script
Category: Graphics
License: GNU General Public License
Description: create a dynamic button-image with variable font,color,margin and corner-rounding. uses external ‘style’ files and URL variables.
files: the_button.php // the_button image script btn_standard.php // "style" file containing values for the_button btn_blue.php // another "style" file containing values for the_button the_button_test.html // test html file to test the_button.php usage: create all files in the same directory get a TTF font in the same directory change the TTF font names in the "style" files study the_button_test.html ---[the_button.php]------------------------------------------------------------- <?php // the_button.php version 1.0.0 - 09.08.2003 // created by andre schmidt [email protected] header("Content-type: image/png"); // allocate colors in form hex RGB function hex_ImgColAll($im,$hex){ $a = hexdec(substr($hex,0,2)); $b = hexdec(substr($hex,2,2)); $c = hexdec(substr($hex,4,2)); return ImageColorAllocate($im, $a, $b, $c); } // check url commands if ($_GET['style'] <> ''){ $sname = 'btn_'.$_GET['style'].'.php'; include($sname); } else include('btn_standard.php'); if ($_GET['text'] <> '') $btn_text = $_GET['text']; // button text if ($_GET['size'] <> '') $font_siz = $_GET['size']; // font size if ($_GET['font'] <> '') $font_nam = $_GET['font']; // font path/name.ttf if ($_GET['lm'] <> '') $l_margin = $_GET['lm']; // left margin size if ($_GET['um'] <> '') $u_margin = $_GET['um']; // up margin size if ($_GET['rm'] <> '') $r_margin = $_GET['rm']; // right margin size if ($_GET['dm'] <> '') $d_margin = $_GET['dm']; // down margin size if ($_GET['tc'] <> '') $text_col = $_GET['tc']; // text color in hex if ($_GET['lc'] <> '') $line_col = $_GET['lc']; // outline color in hex if ($_GET['fc'] <> '') $fill_col = $_GET['fc']; // fill color in hex if ($_GET['bc'] <> '') $back_col = $_GET['bc']; // background color in hex if ($_GET['luc'] <> '') $ltup_crn = $_GET['luc']; // left up corner size if ($_GET['ruc'] <> '') $rtup_crn = $_GET['ruc']; // right up corner size if ($_GET['rdc'] <> '') $rtdn_crn = $_GET['rdc']; // right down corner size if ($_GET['ldc'] <> '') $ltdn_crn = $_GET['ldc']; // left down corner size // main code $box = imageftbbox ($font_siz, 0, $font_nam, $btn_text, 1); $box2 = imageftbbox ($font_siz, 0, $font_nam, 'oo', 1); $tw=$box[4]-$box[0]; $th=$box2[1]-$box2[5]; $img_width = ($tw+$l_margin+$r_margin)*2; $img_height = ($th+$u_margin+$d_margin)*2; $img = imagecreatetruecolor($img_width,$img_height); $img_out = imagecreatetruecolor($img_width/2,$img_height/2); $back_color = hex_ImgColAll($img_out,$back_col); $text_color = hex_ImgColAll($img_out,$text_col); $line_color = hex_ImgColAll($img_out,$line_col); $fill_color = hex_ImgColAll($img_out,$fill_col); imagecolortransparent($img_out,$back_color); //sides imagefilledrectangle($img,0,0,$img_width,$img_height,$fill_color); imagerectangle($img,0,0,$img_width-1,$img_height-1,$line_color); //left_up_corner imagefilledrectangle($img,0,0,$ltup_crn*2,$ltup_crn*2,$back_color); imagefilledarc($img,$ltup_crn*2,$ltup_crn*2,$ltup_crn*4,$ltup_crn*4,180,270,$fill_color,0); imagearc($img,$ltup_crn*2,$ltup_crn*2,$ltup_crn*4,$ltup_crn*4,180,270,$line_color); //right_up_corner imagefilledrectangle($img,$img_width-$rtup_crn*2-1,0,$img_width,$rtup_crn*2,$back_color); imagefilledarc($img,$img_width-$rtup_crn*2-1,$rtup_crn*2,$rtup_crn*4,$rtup_crn*4,270,360,$fill_color,0); imagearc($img,$img_width-$rtup_crn*2-1,$rtup_crn*2,$rtup_crn*4,$rtup_crn*4,270,360,$line_color); //right_down_corner imagefilledrectangle($img,$img_width-$rtdn_crn*2,$img_height-$rtdn_crn*2-1,$img_width,$img_height,$back_color); imagefilledarc($img,$img_width-$rtdn_crn*2-1,$img_height-$rtdn_crn*2-1,$rtdn_crn*4,$rtdn_crn*4,360,90,$fill_color,0); imagearc($img,$img_width-$rtdn_crn*2-1,$img_height-$rtdn_crn*2-1,$rtdn_crn*4,$rtdn_crn*4,360,90,$line_color); //left_down_corner imagefilledrectangle($img,0,$img_height-$ltdn_crn*2-1,$ltdn_crn*2,$img_height,$back_color); imagefilledarc($img,$ltdn_crn*2,$img_height-$ltdn_crn*2-1,$ltdn_crn*4,$ltdn_crn*4,90,180,$fill_color,0); imagearc($img,$ltdn_crn*2,$img_height-$ltdn_crn*2-1,$ltdn_crn*4,$ltdn_crn*4,90,180,$line_color); imagecopyresampled($img_out,$img,0,0,0,0,$img_width/2,$img_height/2,$img_width,$img_height); $c_h = $img_height/2-$d_margin; imagettftext($img_out, $font_siz, 0, $l_margin, $c_h, $text_color, $font_nam, $btn_text); imagepng($img_out); imagedestroy($img); imagedestroy($img_out); ?> -------------------------------------------------------------------------------- ---[btn_standard.php]----------------------------------------------------------- <?php $btn_text = 'the_button.php v1.0.0'; // button text $font_siz = 8; // font size $font_nam = "SF_P.TTF"; // font path/name.ttf $l_margin = 5; // left margin size $u_margin = 6; // up margin size $r_margin = 6; // right margin size $d_margin = 5; // down margin size $text_col = '000000'; // text color in hex $line_col = '000000'; // outline color in hex $fill_col = 'dddddd'; // fill color in hex $back_col = 'ffffff'; // background color in hex $ltup_crn = 3; // left up corner size $rtup_crn = 3; // right up corner size $rtdn_crn = 3; // right down corner size $ltdn_crn = 3; // left down corner size ?> -------------------------------------------------------------------------------- ---[btn_blue.php]--------------------------------------------------------------- <?php $btn_text = 'blahblah'; $font_siz = 9; $font_nam = "SF_P.TTF"; $l_margin = 5; $u_margin = 6; $r_margin = 6; $d_margin = 5; $text_col = 'ffffff'; $line_col = '000000'; $fill_col = '3366dd'; $back_col = 'ffffff'; $ltup_crn = 5; $rtup_crn = 0; $rtdn_crn = 5; $ltdn_crn = 0; ?> -------------------------------------------------------------------------------- ---[the_button_test.html]------------------------------------------------------- <html> <body> <img border="0" src="the_button.php"> <br> <br> 01 - <a href=""><img border="0" src="the_button.php?text=my_button"></a> <br> 02 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12"></a> <br> 03 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20"></a> <br> 04 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20"></a> <br> 05 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20"></a> <br> 06 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20"></a> <br> 07 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15"></a> <br> 08 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15"></a> <br> 09 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15&rdc=15"></a> <br> 10 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15&rdc=15&ldc=15"></a> <br> 10 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15&rdc=15&ldc=15&tc=ffffff"></a> <br> 11 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15&rdc=15&ldc=15&tc=ffffff&lc=ff0000"></a> <br> 13 - <a href=""><img border="0" src="the_button.php?text=my_button&size=12&lm=20&um=20&rm=20&dm=20&luc=15&ruc=15&rdc=15&ldc=15&tc=ffffff&lc=ff0000&fc=dd6633"></a> <br> 14 - <a href="mailto:[email protected]"><img border="0" src="the_button.php?text=send comments/ideas/bugs to [email protected]&style=blue"></a> </body> </html> --------------------------------------------------------------------------------