• 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

  • 相关阅读:
    canvas绘制折线路径动画
    canvas绘制虚线图表
    BootstrapTable 行内编辑解决方案:bootstrap-table-editor
    canvas绘制图像轮廓效果
    三维场景中常用的路径动画
    三维组态部件动画解决方案
    canvas多重阴影发光效果
    萌新的算法课-方法论
    网易云ncm文件转换器
    PyCharm永久激活
  • 原文地址:https://www.cnblogs.com/wangzhaobo/p/7522369.html
Copyright © 2020-2023  润新知