php 图片添加水印和二维码

        $host = $_SERVER['HTTP_HOST'];
        $save_code_file = './qrcodes/qrcode.png';
        QrCode::format('png')->size(200)->backgroundColor(223,213,211)->generate($host,public_path($save_code_file));
        $name = "张三";
        $second = '李四';
        $date_y = date('Y');
        $date_m = intval(date('m'));
        $date_d = intval(date('d'));
        $font = './font/shouzhangti.ttf';//水印字体
        $im = imagecreatefromjpeg("./images/hejiu.jpg");//载入图片
        $black = imagecolorallocate($im, 0, 0, 0);//设置颜色
        $save_file = './images/test1.jpg';
        imagettftext($im, 36, 0, 280, 530, $black, $font, $name);//认错人
        imagettftext($im, 36, 0, 530, 530, $black, $font, $date_y);//年
        imagettftext($im, 36, 0, 690, 530, $black, $font, $date_m);//月
        imagettftext($im, 36, 0, 820, 530, $black, $font, $date_d);//日
        imagettftext($im, 36, 0, 470, 660, $black, $font, $second);//被认错者
        imagettftext($im, 36, 0, 760, 1080, $black, $font, $name);//认错人签名
        imagettftext($im, 36, 0, 630, 1148, $black, $font, $date_y);//认错人签名年
        imagettftext($im, 36, 0, 780, 1148, $black, $font, $date_m);//认错人签名月
        imagettftext($im, 36, 0, 900, 1148, $black, $font, $date_d);//认错人签名日
        imagepng($im,$save_file);//输出图片,如果要保存加个保存路径和文件名,如imagepng($im,'test1.jpg');
        //创建图片的实例
        $dst = imagecreatefromstring(file_get_contents($save_file));
        $src = imagecreatefromstring(file_get_contents($save_code_file));
        //获取水印图片的宽高
        list($src_w, $src_h) = getimagesize($save_code_file);
        //将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
        imagecopymerge($dst, $src, 150, 1000, 0, 0, $src_w, $src_h, 80);

        //如果水印图片本身带透明色,则使用imagecopy方法
        // imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);

        //输出图片
        list($dst_w, $dst_h, $dst_type) = getimagesize($save_file);
        switch ($dst_type) {
            case 1://GIF
                header('Content-Type: image/gif');
                imagegif($dst);
                break;
            case 2://JPG
                header('Content-Type: image/jpeg');
                imagejpeg($dst);
                break;
            case 3://PNG
                header('Content-Type: image/png');
                imagepng($dst);
                break;
            default:
                break;
        }
        imagedestroy($dst);
        imagedestroy($src);
        imagedestroy($im);//清空缓存