php图文合成文字居中(png图片合成)

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 $font_pos_y 文字距离图片高度
 * @return string             合成图片的名称
 */
function signImg($pic_path,$text,$font_file,$font_size,$font_pos_y){
    //图片信息
    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, 236, 185, 7);//默认的文字颜色
    $font_color = [$white,$yellow,$white,$white];
    foreach($text as $key=>$value){
        $arr = imagettfbbox($font_size[$key],0,$font_file[$key],$text[$key]);
        $text_width = $arr[2]-$arr[0];
        imagefttext($pic, $font_size[$key], 0, ($pic_w-$text_width)/2, $font_pos_y[$key], $font_color[$key], $font_file[$key], $text[$key]);
    }
    //按照画布类型输出图片
    $pngName = time().rand(0,9).".png";//生成图片名称
    switch ($pic_type) {
        case 1://GIF
            
        case 2://JPG
            
        case 3://PNG
            // //直接输出图片
            header('Content-Type: image/png');
            imagepng($pic);
            
            // 保存图片路径
            // imagepng($pic,"./assets/sign/".$pngName);
            // return $pngName;
            break;
        default:
            break;
    }
    imagedestroy($pic);
}
    $pic_path = './assets/images/backgroud.png';
    $text = [
        '若水电影电竞女神巡演赛成都站',
        '王若水',
        '观赛时间:2017.9.2 12:30',
        '观赛地点:万达电影地方电竞女神巡演赛(成都站)'
    ];
    $font_file = [
        "./assets/fonts/MSYH.TTF",//粗体
        "./assets/fonts/MSYH.TTF",//粗体
        "./assets/fonts/MSYH.TTF",//细体
        "./assets/fonts/MSYH.TTF"//细体
    ];
    $font_size = [24,42,18,18];
    $font_pos_y = [298,470,600,650];
    signImg($pic_path,$text,$font_file,$font_size,$font_pos_y);
    // header("Content-type: image/png"); 
    // echo $a;

 素材地址:链接:http://pan.baidu.com/s/1c2vUCAO 密码:3s2i

转载于:https://www.cnblogs.com/wangzhaobo/p/7522369.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值