天天看點

php圖檔添加文字

調用方法

public function make(){
        //第一頁
        $textArr1 = [];
        //圖檔字尾
        $type = 3;
        //頁數
        $page = 1;
        //圖檔
        $bigImgPath1 = 'images/parttimejob/part_time_job_1.png';
        $ip = new i_parttimejob_Model();

        // 乙方real_name
        $textArr1['real_name']['text'] = 'aaaaaaa';
        $textArr1['real_name']['fontSize'] = 35;
        $textArr1['real_name']['left'] = 1300;
        $textArr1['real_name']['top'] = 430;

        // 身份證idcard
        $textArr1['idcard']['text'] = 'bbbbbbbb';
        $textArr1['idcard']['fontSize'] = 35;
        $textArr1['idcard']['left'] = 1380;
        $textArr1['idcard']['top'] = 530;
        $this->textInImg($type, $bigImgPath1, $textArr1, $student_id, $page);

        //第二頁
        $page = 2;
        //圖檔
        $bigImgPath2 = 'images/parttimejob/part_time_job_2.png';
        // 姓名
        $textArr2['real_name']['text'] = '11111';
        $textArr2['real_name']['fontSize'] = 30;
        $textArr2['real_name']['left'] = 530;                                                                   
        $textArr2['real_name']['top'] = 550;
        // 性别
        $textArr2['sex']['text'] = '0';
        $textArr2['sex']['fontSize'] = 30;
        $textArr2['sex']['left'] = 1600;
        $textArr2['sex']['top'] = 550;
        $this->textInImg($type, $bigImgPath2, $textArr2, $student_id, $page);
  }

/**
     * 圖檔加文字
     *
     *   $fontSize = 45;   //字型大小
     *   $circleSize = 0;  //旋轉角度
     *   $left = 2050;       //左邊距
     *   $top = 330;       //頂邊距
     */
    public function textInImg($type, $bigImgPath, $textArr, $s_id, $page) {
        //被加字的圖檔
        $img = imagecreatefromstring(file_get_contents($bigImgPath));
		//一定要有對應的字型檔案
        $font = '/var/www/font/MSYH.ttc';  
        //字型顔色 RGB
        $black = imagecolorallocate($img, 0,0,0);  
        //循環添加要寫的字
        foreach($textArr as $j){
            //字型大小
            $fontSize = $j['fontSize']; 
            //旋轉角度  
            $circleSize = 0;  
            //左邊距
            $left = $j['left'];       
            //頂邊距
            $top = $j['top'];       
            // 儲存檔案 git/jpg/png/bmp
            imagefttext($img, $fontSize, $circleSize, $left, $top, $black, $font, $j['text']);
        }
        list($bgWidth, $bgHight, $type) = getimagesize($bigImgPath);
        //儲存位置,儲存名稱
        $savePath = tempnam("/images/parttimejob/partContract", "PC".$s_id."_".$page);
        switch($type)
        {
            case 1:
                imagegif($img, $savePath);
                break;
            case 2:
                imagejpeg($img, $savePath);
                break;
            case 3:
                imagepng($img, $savePath);
                break;
            case 6:
                imagewbmp($img, $savePath);
                break;
        }
        //将圖像輸出到浏覽器或檔案
        imagepng($img,"images/parttimejob/partContract"."/PC".$s_id."_".$page.".png");
        imagedestroy($img);
        return $savePath;
    }