用PHP实现渐变字体输出

先演示一下:

今天刚写的,还热乎着呢,代码如下:

CODE:[Copy to clipboard]
```

Header("Content-type: image/png");

$txt= $_GET['txt']."(刷新我会变色哦)";
$i=strlen( $txt);
$width=16strlen( $txt);
$height=42
(int)( $width/500+1);
$im = imagecreate( $width, $height);

$background_color=imageColorAllocate( $im,223,223,223);
$white=imageColorAllocate( $im,255,255,255);
$color1=imageColorAllocate( $im,255,128,128);
$red=imageColorAllocate( $im,255,0,0);
$color3=imageColorAllocate( $im,128,64,64);
$yellow=imageColorAllocate( $im,255,255,0);
$color4=imageColorAllocate( $im,255,128,0);
$color5=imageColorAllocate( $im,128,128,0);
$green=imageColorAllocate( $im,0,255,0);
$color6=imageColorAllocate( $im,0,128,0);
$blue=imageColorAllocate( $im,0,0,255);
$pink=imageColorAllocate( $im,255,0,128);
$black=imageColorAllocate( $im,0,0,0);

$array=array( $color1, $red, $color3, $color4, $color5, $green, $color6, $blue, $pink, $black, $white);

$x=1;
$y=40;
$count=1;

for( $t=0; $t< $i; $t++)
{
$temp=rand(0,10);
$color= $array[ $temp];
if (ord( $txt[ $t]) >= 128)
{
if( $x+32>500)
{
$x=1;
$y=40+ $count*41;
$count++;
}
$temp= $txt[ $t++]. $txt[ $t];
$temp=mb_convert_encoding( $temp, "UTF-8", "gb2312");
imagettftext( $im,24, 0, $x, $y, $color,"tupian/finish/simsun.ttc", $temp);
$x+=32;

}
else
{
if( $x+8>500)
{
$x=1;
$y=40+ $count*41;
$count++;
}
imagettftext( $im,24, 0, $x, $y, $color,"tupian/finish/simsun.ttc", $txt[ $t]);
$x+=16;
}
}
ImagePNG( $im);
ImageDestroy( $im);

1---  
2  
3使用说明:将上面的代码保存为1.php!   
4  
51、在浏览器中输入http://你的网址/1.php?txt=文字 可直接观看效果   
62、在论坛中以这样的形式发帖:{img}http://你的网址/1.php?txt=文字{/img}(实际用时把大括号换为中括号)   
7  
8PS:  如果你的空间不支持mb_convert_encoding函数,你需要有把gb2312转为utf-8的函数才能支持中文!
Published At
Categories with Web编程
Tagged with
comments powered by Disqus