⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ibutton.php

📁 PHP4_0入门与提高源程序代码
💻 PHP
字号:
<?

$SEPARATOR="/";
if(strstr($SERVER_SOFTWARE,"thttpd"))
{
    $thttpd_path=true;
    $full_path=true;
}
if($full_path)
{
    $path=exec("pwd");
    if($thttpd_path)
    {
	$path.=dirname($REQUEST_URI).$SEPARATOR;
    }
    else $path.=$SEPARATOR;
}

include $path."colors.inc";

if(!isset($bg_color))$bg_color  = "white";
if(!isset($bg_trans))$bg_trans  = False;
if(!isset($fg_color))$fg_color  = "blue";
if(!isset($fg_trans))$fg_trans  = False;
if(!isset($border_color))$border_color  = "orange";
if(!isset($border_trans))$border_trans  = False;

if(isset($ttffile))$fontfile=$ttffile;
else $fontfile="timesk8.ttf";
if(!isset($text))$text="Default text";
if(isset($fontsize))$FontCharSizeY=$fontsize;
else $FontCharSizeY = 16;
$Length   = strlen($text);

if(!isset($border_size))$border_size=0;
if(!isset($border_interval))$border_interval=0;
if(!isset($border_max_size))$border_max_size=$border_size+$border_interval;

$bms = $border_max_size-$border_interval;
$bs = $border_size;
$bi = $border_max_size-$border_size-$border_interval;
#$text.=" $bs $bi $bms $border_interval $border_max_size";
$size=ImageTTFBBox($FontCharSizeY,0,$fontfile,$text);
//包围字符串的边框的长度和宽度
$SizeX = $size[2]-$size[0] + 4 + $border_max_size*2;
$SizeY = $size[1]-$size[5]  + 4 + $border_max_size*2;

$sx_bi = $SizeX - $bi - 1;
$sx_bms = $SizeX - $bms - 1;
$sy_bi = $SizeY - $bi - 1;
$sy_bms = $SizeY - $bms - 1;

//创建一个图像,$SizeX和$SizeY分别代表长宽
$img = imagecreate($SizeX, $SizeY);
//允许图像交织
ImageInterlace($img, 1);
//设定透明颜色
$trans = ImageColorAllocate($img, 0, 0, 0);
ImageColorTransparent($img, $trans);

	//处理背景颜色
    if ($bg_color)
    {
	//处理#rrggbb格式的颜色值
	if($bg_color[0]=="#")
	{
	    ereg("#([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])", 
		$bg_color, $tmp);
            $bg_c["red"]   = hexdec($tmp[1]);
            $bg_c["green"] = hexdec($tmp[2]);
            $bg_c["blue"]  = hexdec($tmp[3]);
	}
		//处理rr+gg+bb格式的颜色值
        else if (ereg("([0-9]*) ([0-9]*) ([0-9]*)", str_replace("+"," ",$bg_color), $tmp))
        {
            $bg_c["red"]   = $tmp[1];
            $bg_c["green"] = $tmp[2];
            $bg_c["blue"]  = $tmp[3];
        }
		//透明背景
        else if (eregi("transparent", $bg_color))
 $bg_trans = True;
        else
 $bg_c = GetColor($bg_color);
    }
	
	//处理前景色
    if ($fg_color)
    {
	if($fg_color[0]=="#")
	{
	    ereg("#([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])", 
		$fg_color, $tmp);
            $fg_c["red"]   = hexdec($tmp[1]);
            $fg_c["green"] = hexdec($tmp[2]);
            $fg_c["blue"]  = hexdec($tmp[3]);
	}
        else if (ereg("([0-9]*) ([0-9]*) ([0-9]*)", str_replace("+"," ",$fg_color), $tmp))
        {
            $fg_c["red"]   = $tmp[1];
            $fg_c["green"] = $tmp[2];
            $fg_c["blue"]  = $tmp[3];
        }
        else if (eregi("transparent", $fg_color))
 $fg_trans = True;
        else
 $fg_c = GetColor($fg_color);
    }
	
	//处理边框颜色
    if ($border_color)
    {
	if($border_color[0]=="#")
	{
	    ereg("#([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])([0-9A-Fa-f][0-9A-Fa-f])", 
		$border_color, $tmp);
            $border_c["red"]   = hexdec($tmp[1]);
            $border_c["green"] = hexdec($tmp[2]);
            $border_c["blue"]  = hexdec($tmp[3]);
	}
        else if (ereg("([0-9]*) ([0-9]*) ([0-9]*)", str_replace("+"," ",$border_color), $tmp))
        {
            $border_c["red"]   = $tmp[1];
            $border_c["green"] = $tmp[2];
            $border_c["blue"]  = $tmp[3];
        }
        else if (eregi("transparent", $border_color))
 $border_trans = True;
        else
 $border_c = GetColor($border_color);
    }

//填充背景色
if ($bg_trans)
 ImageFill($img, 0, 0, $trans);
else
{
        $col = ImageColorAllocate($img, $bg_c["red"], $bg_c["green"],
 $bg_c["blue"]);
        ImageFill($img, 0, 0, $col);
}

//为边框填充颜色    
if ($border_trans)
 $col=$trans;
else
 $col = ImageColorAllocate($img, $border_c["red"], $border_c["green"],
 $border_c["blue"]);
if($bs>0)
{
    ImageFilledRectangle($img,$bi,$bi,$bms,$sy_bi, $col);
    ImageFilledRectangle($img,$bms,$bi,$sx_bms,$bms, $col);
    ImageFilledRectangle($img,$sx_bms,$bi,$sx_bi,$sy_bi, $col);
    ImageFilledRectangle($img,$bms,$sy_bms,$sx_bms,$sy_bi, $col);
}

//前景色
if ($fg_trans) $col=$trans;
else
 $col = ImageColorAllocate($img, $fg_c["red"], $fg_c["green"],
 $fg_c["blue"]);

ImageTTFText($img,$FontCharSizeY,0,2+$border_max_size,$border_max_size-$size[5],$col,$fontfile,$text);

// 输出图像
Header("Content-type: image/png");
ImagePNG($img);
ImageDestroy($img);
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -