欢迎来到福编程网,本站提供各种互联网专业知识!

通过文字传递创建的图形按钮

发布时间:2006-10-09 作者: 来源:转载
通过文字传递创建的图形按钮,详细说明请看文内英文说明
通过文字传递创建的图形按钮,详细说明请看文内英文说明

/* PHP3 Button generator, (c) 2000 by IzzySoft (izzysoft@buntspecht.de)

* License: GPL (and it would be nice to drop me a note that you find it

* useful - if you use it. And, of course, I am very interested in

* enhancements you made to the script!

*

* Purpose: generate buttons with text passed by parameter.

*

* possible parameters to the script:

*button- input gif image. Just the part of the filename before the dot.

*The specified image file is expected in the same directory

*as this script resides in.

*font - font to use (1 - 5; 1 is very small, 3 medium, 5 normal size.

*The script will automatically use a smaller font if text is

*too long for selected size.) Default: 5

*text - the text to be put on the button. Will be centered.

*textcolor - color for the letters. Default: white.

*in this example code only blue, white and black are defined;

*but you can add custom colors easily.

*width,heigth - width and heigth of the button. Useful only if target

*button should have different size than source image.

*

* Example for usage:

*

* will look for yellow.gif and put the string "Example" on it.

*

* I use to have three buttons I normally generate (one displays selected

* item, one is for mouseover(), and one is the default button). The source

* images are yellow.gif, white.gif and blue.gif - so my script assumes

* blue.gif as default if "button=" not specified - you may wish to change

* this below, it's easy ;)

*/

// ===========================[ check fo

//r parameters and/or set defaults ]===

if (($font == "") || ($font > 5) || ($font < 1)) { $font = 5; }

if ($text == "") { $text="Moin!"; }// button text

if ($textcolor == "") {// color for the letters

switch ($button) {

case "yellow":

case "white":

$textcolor = "black";

break;

default:

if ($button == "") { $button = "blue"; }

$textcolor = "white";

break;

}

} // textcolor end

$im_info = getimagesize("$button.gif"); // button size

if ($width == "") {

if ($im_info == "") {

$buttonwidth = 125;

} else {

$buttonwidth = "$im_info[0]";

}

} else {

$buttonwidth = $width;

}

if ($heigth == "") {

if ($im_info == "") {

$buttonheigth = 30;

} else {

$buttonheigth = "$im_info[1]";

}

} else {

$buttonheigth = $heigth;

}

$vmidth = ceil($buttonheigth / 2);

// =====================================

//===[ now lets define some colors ]===

$white = "255,255,255";

$black = "0,0,0";

$blue = "0x2c,0c6d,0xaf";

// =====================================

//=============[ build color array ]===

// now we put the needed color into an a

//rray (if e.g. "$textcolor=white",

// the array $textcolor_array represents

//"white")

$textcolor_array = explode(",", $$textcolor);

// =======================[ calculate po

//sition of the text on the button ]===

do {

$textwidth = strlen($text) * imagefontwidth($font);

$x = ($buttonwidth - $textwidth) / 2; $x = ceil($x);

$y = $vmidth - (imagefontheight($font) / 2);

$font--;

} while (($x < 0) && ($font > 0)); $font++;

// =====================================

//======[ now we create the button ]===

if (isset($width) || isset($heigth)) {// size change expected?

$ima = imagecreatefromgif("$button.gif");// open input gif

$im = imagecreate($buttonwidth,$buttonheigth); // create img in desired size

$uglybg = ImageColorAllocate($im,0xf4,0xb2,0xe5);

ImageRectangle($im,0,0,$buttonwidth,$buttonheigth,$uglybg);

$dummy = imagecopyresized($im,$ima,0,0,0,0,$buttonwidth,$buttonheigth,$im_info[0],$im_info[1]);

if ($dummy == "") {

ImageDestroy($im); // if it didn't work, create default below instead

} else {;}

ImageDestroy($ima);

ImageColorTransparent($im,$uglybg);

} else {

$im = imagecreatefromgif("$button.gif");// open input gif

}

if ($im == "") { $im = imagecreate($buttonwidth,$buttonheigth); // if input gif not found,

$rblue = ImageColorAllocate($im, 0x2c,0x6D,0xAF);// create a default box

ImageRectangle($im,0,0,200,100,$rblue);

}

$color = ImageColorAllocate($im, $textcolor_array[0], $textcolor_array[1], $textcolor_array[2]); // allocate the color

imagestring($im, $font, $x, $y, "$text", $color); // put the text on it

ImageGif($im);// send button to browser

ImageDestroy($im);// free the used memory

?>

相关推荐