发布于 5年前

php 原生代码为图片添加文字水印

 public function share_img($schedule_number){
        $bigImgPath = asset('images').'/shar.png';  //获取底图
        try{
//            $img = imagecreatefromstring(file_get_contents($bigImgPath)); //读取图片  读取缓慢  建议不用  
            $fun = 'imagecreatefrom' . 'png';

            $img = $fun($bigImgPath); //调取PHP 的gd方法  推荐
        }catch (\Exception $e){
            return ['message'=>'生成图片异常'];
        }

        $font = public_path('images').'/yuemo.OTF';//字体,字体文件需保存到相应文件夹下  //加载字体

        $black = imagecolorallocate($img, 204, 153, 102); //字体颜色 RGB

        $fontSize = 40;   //字体大小
        $circleSize = 0; //旋转角度
//        $left = 250;      //左边距
        $top = 570;       //顶边距
        $width = 750;
        $content = isset($schedule_show->title) ? $schedule_show->title : ''; //文字内容

        $fontBox  = imagettfbbox($fontSize, 0, $font, $content); //文字水平居中实质

        imagefttext($img, $fontSize, $circleSize, ceil(($width - $fontBox[2]) / 2), $top, $black, $font, $content); //实现文字在图片居中 

        header('content-type:image/png');
        if(!file_exists(storage_path('app/public/').'fx')) {
            mkdir(storage_path('app/public/').'fx');
        }

        $imagename = $schedule_number.'.png'; 
        imagepng($img,storage_path('app/public/fx/').$imagename);  //生成图片 第二参为图片存储路径
        imagedestroy($img); //释放
        return ['message'=>'success','result'=>['url'=>url('storage').'/fx/'.$imagename]]; //返回
    }
©2020 edoou.com   京ICP备16001874号-3