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
轉載于:https://www.cnblogs.com/wangzhaobo/p/7522369.html