PHP 图片合成

PHP 图片合成常涉及到以下几个问题

1、多张图合成
2、png透明问题
3、多行文字
4、文字居中

常用到的php函数

imagecreatefrompng 创建一块画布并载入一张png图片
imagecreatefromjpeg 创建一块画布并载入一张jpg图片
imagesx 获取图片宽
imagesy 获取图片高
imagecreatetruecolor 创建画布
imagecopy 拷贝图片,用于png透明
imagefontwidth 获取文字宽度
ImageColorAllocate 文字颜色
imagettftext 文字
Imagepng 显示或保存
ImageDestroy 销毁图像

PHP 图片合成_第1张图片
123.png
 1 ? 35 : 53;
        $left_b = mb_strlen($tag_b) > 1 ? 35 : 53;
        $left_c = mb_strlen($tag_c) > 1 ? 310 : 330;

        imagettftext($im, 58, 0, $left_a, 95, $color_white, $font_msyh, $tag_a);
        imagettftext($im, 58, 0, $left_b, 510, $color_white, $font_msyh, $tag_b);
        imagettftext($im, 58, 0, $left_c, 510, $color_white, $font_msyh, $tag_c);

        //卡片描述--多行文本渲染
        $h = 390;
        $font_row = 11;    //一行显示多少字
        $fontSize = 14; //18号字体
        foreach (str_split($tag_content, $font_row * 3) as $key => $val) {
            $tmp_h = $h + $key * 20;
            imagettftext($im, 14, 0, 120, $tmp_h, $color_black, $font_simhei, $val);
        }


        //广告--多行文本渲染
        $font_row = 12;    //一行显示多少字
        $h = 620;
        foreach (str_split($text, $font_row * 3) as $key => $val) {
            $tmp_h = $h + $key * 20;
            imagettftext($im, 12, 0, 30, $tmp_h, $color_grey, $font_simhei, $val);
        }


    //最后处理 输出、销毁
        //Imagepng($im, $file_name);//保存到服务器
    header('Content-Type: image/png');
    Imagepng($im);      //浏览器直接显示
        ImageDestroy($img_code);
        ImageDestroy($img_star);
        ImageDestroy($img_bg);
        ImageDestroy($img_bgcard);
        ImageDestroy($im);

        return $file_name;
    }
}
$arr=[];
$arr['name'] = '阿里山';
$arr['content'] = "冲锋、突袭";
$arr['shui']='20';
$arr['xue']='19';
$arr['gj']='33';
$arr['title'] = '你想要的标题';
$arr['info'] = '这里就是传说中的描述吧,看这里看这里...';
echo (new hb)->make($arr);


你可能感兴趣的:(PHP 图片合成)