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

5年以前  |  阅读数:881 次  |  编程语言:PHP 

通过文字传递创建的图形按钮,详细说明请看文内英文说明
<?php Header( "Content-type: image/gif"); // info for the browser
/* 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   
?>         
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例