美图秀秀 http://4.app.meitu.com/ (原)
看挺有创意的,咱也模仿个。 http://0419.cn/2011/
<?
$n=trim($_POST['name']); //要测试的名字
if ($n==''){ //没输入名字输出默认图片
echo "<img src='default.gif' width='245' height='280' />";
die();
}
$pin=SpGetPinyin($n); //获取拼音函数
for($i=0;strlen($pin)-1>$i;$i++){
$abc+=ord(substr($pin,$i,1)); // 把每个字母的ASCII码值累加在一起
} //a-z 97-122
$w=strlen($n); //名字的字母个数
$r=intval($abc/$w*0.3); //假设准备40张图片 z 最大是122 所以缩小数值
if($r>40){$r-=40;}
header("Content-Type:text/html;charset=GB2312");
header("Content-type: image/jpeg"); //向浏览器输出文件头
$image="./images/pic_$r.jpg"; //定义变量指向图像文件
$im=imagecreatefromjpeg($image); //载入图像
$yellow=ImageColorAllocate($im,176,37,30); //定义黄色
$font="C://WINDOWS//Fonts//simhei.ttf"; //定义字体
$str =iconv('gb2312','utf-8',$n); //编码转换
imagettftext($im,15,0,40,30,$yellow,$font,$str); //在x:40 y:30的位置输出汉字 //判断名字是长度然后调整输出位置
imagejpeg($im); //输出图像
imagedestroy($im); //销毁图像
//获取拼音函数
function SpGetPinyin($str,$ishead=0)
{
$restr = '';
$str = trim($str);
$slen = strlen($str);
if($slen<2)
{
return $str;
}
$fp = fopen('./pinyin.dat','r'); //织梦里的
while(!feof($fp))
{
$line = trim(fgets($fp));
$pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
}
fclose($fp);
for($i=0;$i<$slen;$i++)
{
if(ord($str[$i])>0x80)
{
$c = $str[$i].$str[$i+1];
$i++;
if(isset($pinyins[$c]))
{
if($ishead==0)
{
$restr .= $pinyins[$c];
}
else
{
$restr .= $pinyins[$c][0];
}
}else
{
$restr .= "_";
}
}else if( eregi("[a-z0-9]",$str[$i]) )
{
$restr .= $str[$i];
}
else
{
$restr .= "_";
}
}
return $restr;
}
?>