美文网首页
php gd库合成图片并在图片上加文字

php gd库合成图片并在图片上加文字

作者: 端木安玉 | 来源:发表于2020-01-03 17:38 被阅读0次

    先看最终结果


    image.png

    图中 背景上添加两张图片 以及一行文字

    php代码

    /**
     * 将图1和图2画在背景图bgimg上
     */
     
    $bgimg = "bgimg.jpg";
    $bg_info = getimagesize($bgimg);
     
    //获取图片的后缀
    $bg_type = image_type_to_extension($bg_info[2], false);
    //拼接图片资源句柄函数
    $func = 'imagecreatefrom' . $bg_type;
    //创建图片资源句柄
    $bg_image = $func($bgimg);
     
    //图1处理
    $tu1 = "tu1.jpg";
    $tu1_info = getimagesize($tu1);
    $tu1_type = image_type_to_extension($tu1_info[2], false);
    //创建图片资源句柄
    $tu1_func = 'imagecreatefrom' . $tu1_type;
    $tu1_image = $tu1_func($tu1);
    //合并背景图+图1
    imagecopy($bg_image, $tu1_image, 200, 50, 0, 0, 301, 299);  //图1 200距左边距 50距顶边距 301 299图1大小  背景图 0 0
     
     
    //图2处理  二维码
    $tu2 = "tu2.jpg";
    $tu2_mark = getimagesize($tu2);
    $tu2_type = image_type_to_extension($tu2_mark[2], false);
    //创建图片资源句柄
    $tu2_func = 'imagecreatefrom' . $tu2_type;
    $tu2_image = $tu2_func($tu2);
    //合并背景图+二维码
    imagecopy($bg_image, $tu2_image, 583, 1193, 0, 0, 258, 261);
     
     
    //文字
    $font = "msyh.ttc"; //字体文件
    $content = ['你好', '小码农'];
    $font_lposition = [180, 180]; //距左边距
    $font_tposition = [993, 1051]; //距上边距
    if (count($content) > 0) {
        for ($i = 0; $i < count($content); $i++) {
            imagettftext($bg_image, 25, 0, $font_lposition[$i], $font_tposition[$i], 0, $font, $content[$i]);
        }
    }
    //图片输出函数拼接
    $outFunc = 'image' . $bg_type;
    //保存图片
    $img_name = "new.jpg";
    $outFunc($bg_image, $img_name);
    //销毁内存
    imagedestroy($bg_image);
    imagedestroy($tu1_image);
    imagedestroy($tu2_image);
    

    注:

    添加字体的时候要先下载字体文件 放在指定目录才可以添加文章

    相关文章

      网友评论

          本文标题:php gd库合成图片并在图片上加文字

          本文链接:https://www.haomeiwen.com/subject/ledfwctx.html