zoukankan      html  css  js  c++  java
  • 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);//清空缓存
  • 相关阅读:
    [动图演示]Redis 持久化 RDB/AOF 详解与实践
    挑战10个最难的Java面试题(附答案)【上】
    Python使用psutil模块,做你的电脑管家
    在线工具 正则表达式
    [USACO09JAN]Earthquake Damage
    [USACO09MAR]Moon Mooing
    [HNOI2005]汤姆的游戏
    [SDOI2010]大陆争霸
    [USACO08NOV]Cheering up the Cow
    [USACO08NOV]lites
  • 原文地址:https://www.cnblogs.com/jackspider/p/8417262.html
Copyright © 2011-2022 走看看