用PHP实现渐变字体输出

王朝php·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

先演示一下:

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

<?php

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

$txt=$_GET['txt']."(刷新我会变色哦)";

$i=strlen($txt);

$width=16*strlen($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.php!

1、在浏览器中输入http://你的网址/1.php?txt=文字 可直接观看效果

2、在论坛中以这样的形式发帖:{img}http://你的网址/1.php?txt=文字{/img}(实际用时把大括号换为中括号)

PS:如果你的空间不支持mb_convert_encoding函数,你需要有把gb2312转为utf-8的函数才能支持中文!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航