风一样的回忆

新浪微薄腾讯微薄

最新碎语:最近开始学习俄语!!!

您的位置:风一样的回忆 >php> 【原创】PHP实现根据用户姓氏生成汉字图片

【原创】PHP实现根据用户姓氏生成汉字图片

下面是一个根据汉字生成图片的函数,场景:用户没上传头像,根据用户姓氏生成一张图片。

<?php

$font = 'C:/Windows/fonts/STSONG.TTF'; 

header('Content-type:text/html;charset=utf-8');
/**
 * png图文合成 by wangzhaobo
 * @param  string $pic_path   图片目录
 * @param  array $text       文字
 * @param  array $font_file  路径
 * @param  array $font_size  文字大小
 * @param  array $save_path 文字距离图片高度
 * @return string             合成图片的名称
 */
function signImg($pic_path,$text,$font_file,$font_size,$save_path){
    //图片信息
    list($pic_w, $pic_h, $pic_type) = getimagesize($pic_path);
    //创建图片的实例
    $pic = imagecreatefrompng($pic_path);
    imagesavealpha($pic,true);//这里很重要 意思是不要丢了图像的透明色;
    $white = imagecolorallocate($pic, 255, 255, 255);//默认的文字颜色
    $yellow = imagecolorallocate($pic, 0, 0, 0);//默认的文字颜色
    $font_color = $yellow;
    $fontarea = imagettfbbox($font_size,0,$font_file,$text);//确定会变化的字符串的位置

    imagefttext($pic, $font_size, 0, (50-$font_size)/2.5, (50-$font_size)/2+$font_size-2, $font_color, $font_file, $text);
    
    //按照画布类型输出图片
    $pngName = time().rand(0,9).".png";//生成图片名称
    switch ($pic_type) {
        case 1://GIF
            
        case 2://JPG
            
        case 3://PNG
            // //直接输出图片
            // 保存图片路径
            imagepng($pic,$save_path.$pngName);
            break;
        default:
            break;
    }
    imagedestroy($pic);
    return $save_path.$pngName;
}
$pic_path = './image/tou.png';
$text = '张';
$font_file = "C:/Windows/fonts/STSONG.TTF";
$font_size = 24;
signImg($pic_path,$text,$font_file,$font_size,"./image/");

效果图:

15349326114.png

---

转载请注明本文标题和链接:《【原创】PHP实现根据用户姓氏生成汉字图片

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交