![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
原代码如下:
但是不是我想像中的效果。
效果:
1.背景要透明
2。文字要叠加,形成阴影效果,就是底下的文字在最上面的文字下向下及向右便移1个像素。
3.能自动存储到指定目录
[php]
<?php
header("Content-type: image/gif");
$pic="img/a-4.png";
if (empty($txt)){
$txt="输入文字";
}
$str = gb2utf8($txt);
$pich=ImageCreateFromPNG($pic);
$color=ImageColorAllocate($pich,250,250,250);
imagecolortransparent($pich,$color); // 设置为透明色,若注释掉该行则输出绿色的图
imagealphablending($pich, FALSE);//取消默认的混色模式
imagesavealpha($pich,TRUE);//设定保存完整的 alpha 通道信息
ImageTTFText($pich,9,0,3,12,$color,"mingliu.ttc",$str);
$sa=ImagePNG($pich);
ImageDestroy($pich);
setDstImg($sa,"./tmp/aa.png");
function u2utf8($c)
{
for($i=0;$i
if ($c < 0x80)
$str.=$c;
elseif ($c < 0x800)
{
$str.=(0xC0 | $c>>6);
$str.=(0x80 | $c & 0x3F);
}
elseif ($c < 0x10000)
{
$str.=(0xE0 | $c>>12);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
elseif ($c < 0x200000)
{
$str.=(0xF0 | $c>>18);
$str.=(0x80 | $c>>12 & 0x3F);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
return $str;
}
function gb2utf8($gb)
{
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6);
$ret="";
$utf8="";
while($gb)
{
if (ord(substr($gb,0,1))>127)
{
$thi=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb));
$utf8=u2utf8(hexdec($codetable[hexdec(bin2hex($thi))-0x8080]));
for($i=0;$i
}
else
{
$ret.=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb));
}
}
return $ret;
}
?>
[/php]
请高高手帮帮忙!
谢谢
[ 本帖最后由 copier 于 2007-5-14 12:08 PM 编辑 ]


