当前位置: 首页 > 图文教程 > 网络编程 > PHP > 通过文字传递创建的图形按钮

PHP
AJAX在PHP中的简单使用
vim下高亮显示php代码
用 PHP 使 Web 数据分析进入更高境界
用Apache与MySQL整合实现基本身份认证
通用PHP动态生成静态HTML网页的代码
自己轻松修复Discuz!数据库技巧
PHP在Web开发领域的优势在哪?
php4和php5单态模式(Singleton Pattern)写法
使用Xdebug优化你的php程序
PHP学习入门的一些基础知识
关于正则表达式学习
浅谈PHP开发团队的管理之道
传奇的诞生,PHP三位创始人简介
利用PHP制作简单的内容采集器
PHP精确到每一秒钟的在线人数显示代码
一些PHP学习过程中的心得和经验
WINDOWS服务器安装多套PHP的另类解决方案
让你的PHP引擎全速运转的三个简单绝招
大型系统上PHP令人不爽的九大原因
php的计数器程序

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 69 ::
收藏到网摘: n/a

通过文字传递创建的图形按钮,详细说明请看文内英文说明
<?php Header( "Content-type: image/gif"); // info for the browser
/* PHP3 Button generator, (c) 2000 by IzzySoft ([email protected])
* 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:
* <IMG SRC="button.php3?button=yellow&text=Example">
* 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
?>