zoukankan      html  css  js  c++  java
  • PHP文字合成图片的函数刚写完验证OK

    PHP文字合成图片的函数刚写完验证OK

     public function createOfficialCertsImg($id=0,$type=1)
        {
     
            $official_certs_id=$id;
            
            
            //获取证书详细信息
            $certinfo=db('official_certs')->where('id='.$official_certs_id)->find();
            $userinfo=db('client_users')->where('user_id='.$certinfo['user_id'])->find();
            
            //文件名
            $filename=$userinfo['user_id'].'_'.$certinfo['course_id']."_".$type;
            
            //背景图片的url
            $type==1 && $bannerimg = ROOT_PATH . 'public/uploads/certsimg/1.jpg';
            $type==2 && $bannerimg = ROOT_PATH . 'public/uploads/certsimg/2.jpg';
            $type==3 && $bannerimg = ROOT_PATH . 'public/uploads/certsimg/3.jpg';
     
            $sex='未知';
             $userinfo['user_sex']==1 && $sex='';
             $userinfo['user_sex']==2 && $sex='';
      
            //这是要插入到图片的文字
            $name = $certinfo['user_name'];
            $idnum = $certinfo['cert_id'];
            $validtime = $certinfo['cert_endtime'];
            
            //开始图片处理
            if ($bannerimg) {
              
                //这是合成后的图片保存的路径
                $upload_dir = "public/uploads/certsimg/";
                if (is_file($bannerimg)) {
                    //创建画布
                    $logo = imagecreatefromstring(file_get_contents($bannerimg));
    
                    //设置文字颜色
                    $black = imagecolorallocate($logo, 0, 0, 0);
                    
                    //写的文字用到的字体
                    $font = ROOT_PATH . 'public/uploads/certsimg/simfang.ttf';  
     
                    //在图片里插入文字$black
                    imagettftext($logo, 20, 0, 124, 146, $black,$font, $name);  
                    imagettftext($logo, 20, 0, 318, 146, $black,$font, $sex);  
                    imagettftext($logo, 20, 0, 170, 205, $black, $font, $idnum);    
                    imagettftext($logo, 20, 0, 170, 270, $black, $font, $validtime);  
    
                    //生成图片
                    imagepng($logo, ROOT_PATH . $upload_dir . $filename . '.png');
     
                    $finalurl='uploads/certsimg/'.$filename . '.png';
                }
               return  $finalurl;//返回结果图片url
               
            } else {
                
                return false;
                
            }
        }

    其实整个过程不复杂  比较麻烦的就是 给把文字插入到图片中的位置

    imagettftext  第一个参数是是图片位置  然后是字体  第4和5是位置 在图片中的位置  我直接用截图的选择 来进行的定位
    如果生成不了文字,那么一定记得把字体文件上传到服务器 设置好位置


    大概就是这个样子

  • 相关阅读:
    intellij idea 主题更换(换黑底或白底)
    intellij idea 编码设置(乱码问题)
    Intellij idea中maven加载jar包很慢的解决方案.
    mysql一个特殊的条件.字符串除以0的结果.
    tomcat启动报错:Injection of autowired dependencies failed
    给input文本框添加灰色提示文字,三种方法.
    jquery插件开发尝试(二)
    初试jquery插件开发
    jquery.touchslider.min.js的简单使用
    superslide 学习笔记
  • 原文地址:https://www.cnblogs.com/baker95935/p/12743311.html
Copyright © 2011-2022 走看看