<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ~~~ public static function buildExpireImage($data=[],$title=''){ //圖片左上角匯總說明數據,可為空 $table_explain = [ 0 => '[日期]'.date('Y-m-d H:i:00'), 1 =>' ', ]; //表頭信息 $table_header = [ "","表頭1","表頭2","表頭3","表頭4","表頭5","表頭6","表頭7","日期","姓名" ]; //每個格子的寬度,可根據數據長度自定義 $field_width = ['60','100','100','130','550','120','120','120','120','120']; $clo=[]; foreach ($data as $k=>$v){ if($v['expired_date']>=10){ $clo[] = ['x'=>2, 'y'=>$k+2]; } } //參數 $params = [ 'rowy' => ['1'], 'clo' => $clo, 'row' => count($data), //數據的行數 'file_name' => time().rand(1000000,99999).'test.png', //保存的文件名 'title' => $title, 'table_time' => date("Y-m-d H:i:s"), 'data' => $data, 'table_explain' => $table_explain, 'table_header' => $table_header, 'field_width' => $field_width, 'file_path' => './upload/image/' //文件保存路徑 ]; //調用方法 return substr(self::create($params),1); } public static function create($params) { $base = [ 'border' => 10,//圖片外邊框 'file_path' => $params['file_path'],//圖片保存路徑 'title_height' => 25,//報表名稱高度 'title_font_size' => 16,//報表名稱字體大小 'font_ulr' => root_path().'public/simkai.ttf',//字體文件路徑 'text_size' => 12,//正文字體大小 'row_hight' => 30,//每行數據行高 'head_bg_rgb'=>!empty($params['head_bg_rgb'])?$params['head_bg_rgb']:[242,244,42] ]; list($head_red ,$head_green ,$head_blue)=$base['head_bg_rgb']; $save_path = $base['file_path'] . $params['file_name']; //如果表說明部分不為空,則增加表圖片的高度 if(!empty($params['table_explain'])){ // $base['title_height'] = $base['title_height'] * count($params['table_explain']); $base['title_height'] = $base['title_height'] * 2; } //計算圖片總寬 $w_sum = $base['border']; foreach ($params['field_width'] as $key => $value) { //圖片總寬 $w_sum += $value; //計算每一列的位置 $base['column_x_arr'][$key] = $w_sum; } $base['img_width'] = $w_sum + $base['border'] * 2-$base['border'];//圖片寬度 $base['img_height'] = ($params['row']+1) * $base['row_hight'] + $base['border'] * 2 + $base['title_height'];//圖片高度 $border_top = $base['border'] + $base['title_height'];//表格頂部高度 $border_bottom = $base['img_height'] - $base['border'];//表格底部高度 $img = imagecreatetruecolor($base['img_width'], $base['img_height']);//創建指定尺寸圖片 $bg_color = imagecolorallocate($img, 255,255,255);//設定圖片背景色 $borderbg_color = imagecolorallocate($img, $head_red ,$head_green ,$head_blue);//設定圖片背景色 $text_coler = imagecolorallocate($img, 0, 0, 0);//設定文字顏色 $border_coler = imagecolorallocate($img, 0, 0, 0);//設定邊框顏色 imagefill($img, 0, 0, $bg_color);//填充圖片背景色 //先填充一個黑色的大塊背景 imagefilledrectangle($img, $base['border'], $base['border'] + $base['title_height'], $base['img_width'] - $base['border'], $base['img_height'] - $base['border'], $border_coler);//畫矩形 //再填充一個小兩個像素的 背景色區域,形成一個兩個像素的外邊框 imagefilledrectangle($img, $base['border'] + 2, $base['border'] + $base['title_height'] + 2, $base['img_width'] - $base['border'] - 2, $base['img_height'] - $base['border'] - 2, $bg_color);//畫矩形 foreach($params['rowy'] as $r){ $startx = $base['border'] + 2 ; $starty = $base['border'] + $base['title_height'] + 2+($r-1)*30; $endx = $base['img_width'] - $base['border'] - 2; $endy = $base['border'] + $base['title_height'] + 2 + $r*30; imagefilledrectangle($img, $startx, $starty, $endx, $endy, $borderbg_color);//畫矩形 } $diy_border_color = []; foreach($params['clo'] as $c){ if (!empty($c['rgb']) && !isset($diy_border_color[implode(',', $c['rgb'])])) { $diy_border_color[implode(',', $c['rgb'])] = imagecolorallocate($img, $c['rgb'][0],$c['rgb'][1],$c['rgb'][2]);//設定圖片背景色 } $this_border = $borderbg_color; !empty($c['rgb']) && $this_border = $diy_border_color[implode(',', $c['rgb'])]; $startx = $base['border'] + $base['column_x_arr'][$c['x']-2]-10 ; $starty = $base['border'] + $base['title_height'] + 2+($c['y']-1)*30; $endx = $base['border'] + $base['column_x_arr'][$c['x']-1]-10; $endy = $base['border'] + $base['title_height'] + 2+($c['y'])*30-3; imagefilledrectangle($img, $startx, $starty, $endx, $endy, $this_border);//畫矩形 } //畫表格縱線 及 寫入表頭文字 $sum = $base['border']; foreach($base['column_x_arr'] as $key => $x){ imageline($img, $x, $border_top, $x, $border_bottom,$border_coler);//畫縱線 $this_title_box = imagettfbbox($base['text_size'], 0, $base['font_ulr'], $params['table_header'][$key]); $title_x_len = $this_title_box[2] - $this_title_box[0]; imagettftext($img, $base['text_size'], 0, $sum + (($x-$sum)/2 - $title_x_len/2), $border_top + ($base['row_hight']+$base['text_size'])/2, $text_coler, $base['font_ulr'], $params['table_header'][$key]);//寫入表頭文字 $sum += $params['field_width'][$key]; } //畫表格橫線 foreach($params['data'] as $key => $item){ $border_top += $base['row_hight']; //畫橫線 imageline($img, $base['border'], $border_top, $base['img_width'] - $base['border'], $border_top, $border_coler); $this_first = imagettfbbox($base['text_size'], 0, $base['font_ulr'], $key); $first_len = $this_first[2] - $this_first[0]; imagettftext($img, $base['text_size'], 0, $params['field_width'][0]/2 - $first_len/2+$base['border'], $border_top + ($base['row_hight']+$base['text_size'])/2, $text_coler, $base['font_ulr'], $key);//寫入序號 $sub = 0; $sum = $params['field_width'][0]+$base['border']; foreach ($item as $value){ $sub++; $this_title_box = imagettfbbox($base['text_size'], 0, $base['font_ulr'], $value); $title_x_len = $this_title_box[2] - $this_title_box[0]; imagettftext($img, $base['text_size'], 0, $sum + (($base['column_x_arr'][$sub]-$sum)/2 - $title_x_len/2), $border_top + ($base['row_hight']+$base['text_size'])/2, $text_coler, $base['font_ulr'], $value);//寫入data數據 $sum += $params['field_width'][$sub]; } } //計算標題寫入起始位置 $title_fout_box = imagettfbbox($base['title_font_size'], 0, $base['font_ulr'], $params['title']);//imagettfbbox() 返回一個含有 8 個單元的數組表示了文本外框的四個角: $title_fout_width = $title_fout_box[2] - $title_fout_box[0];//右下角 X 位置 - 左下角 X 位置 為文字寬度 $title_fout_height = $title_fout_box[1] - $title_fout_box[7];//左下角 Y 位置- 左上角 Y 位置 為文字高度 $save_path = $base['file_path'] . $params['file_name']; if(!is_dir($base['file_path']))//判斷存儲路徑是否存在,不存在則創建 { mkdir($base['file_path'],0777,true); } //居中寫入標題 imagettftext($img, $base['title_font_size'], 0, ($base['img_width'] - $title_fout_width)/2, 20, $text_coler, $base['font_ulr'], $params['title']); //設置圖片左上角信息 $a_hight = 20; if(!empty($params['table_explain'])){ foreach ($params['table_explain'] as $key => $value) { imagettftext($img, $base['text_size'], 0, 10+$a_hight, 50, $text_coler, $base['font_ulr'], $value); $a_hight += 180; } } imagepng($img,$save_path);//輸出圖片,輸出png使用imagepng方法,輸出gif使用imagegif方法 return $save_path; } ~~~ ![](https://img.kancloud.cn/aa/11/aa119fcd798eb683bd6f5362c6f1ea05_1546x355.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看