📄 ibutton.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 + -