随笔 - 137  文章 - 1  评论 - 3  阅读 - 14万 
复制代码
        $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);//清空缓存
复制代码

 

posted on   ヽ坚强的蘑菇  阅读(1121)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示