header('Content-type:text/html;charset=utf-8'); /** * png圖文合成 by wangzhaobo * @param string $pic_path 圖片目錄 * @param array $text 文字 * @param array $font_file 路徑 * @param array $font_size 文字大小 * @param array $font_pos_y 文字距離圖片高度 * @return string 合成圖片的名稱 */ function signImg($pic_path,$text,$font_file,$font_size,$font_pos_y){ //圖片信息 list($pic_w, $pic_h, $pic_type) = getimagesize($pic_path); //創建圖片的實例 $pic = imagecreatefrompng($pic_path); imagesavealpha($pic,true);//這里很重要 意思是不要丟了圖像的透明色; $white = imagecolorallocate($pic, 255, 255, 255);//默認的文字顏色 $yellow = imagecolorallocate($pic, 236, 185, 7);//默認的文字顏色 $font_color = [$white,$yellow,$white,$white]; foreach($text as $key=>$value){ $arr = imagettfbbox($font_size[$key],0,$font_file[$key],$text[$key]); $text_width = $arr[2]-$arr[0]; imagefttext($pic, $font_size[$key], 0, ($pic_w-$text_width)/2, $font_pos_y[$key], $font_color[$key], $font_file[$key], $text[$key]); } //按照畫布類型輸出圖片 $pngName = time().rand(0,9).".png";//生成圖片名稱 switch ($pic_type) { case 1://GIF case 2://JPG case 3://PNG // //直接輸出圖片 header('Content-Type: image/png'); imagepng($pic); // 保存圖片路徑 // imagepng($pic,"./assets/sign/".$pngName); // return $pngName; break; default: break; } imagedestroy($pic); } $pic_path = './assets/images/backgroud.png'; $text = [ '若水電影電競女神巡演賽成都站', '王若水', '觀賽時間:2017.9.2 12:30', '觀賽地點:萬達電影地方電競女神巡演賽(成都站)' ]; $font_file = [ "./assets/fonts/MSYH.TTF",//粗體 "./assets/fonts/MSYH.TTF",//粗體 "./assets/fonts/MSYH.TTF",//細體 "./assets/fonts/MSYH.TTF"//細體 ]; $font_size = [24,42,18,18]; $font_pos_y = [298,470,600,650]; signImg($pic_path,$text,$font_file,$font_size,$font_pos_y); // header("Content-type: image/png"); // echo $a;
素材地址:鏈接:http://pan.baidu.com/s/1c2vUCAO 密碼:3s2i