php图文合成文字居中(png图片合成)
2024-10-12 03:52:23
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
最新文章
- vs2010中如何设置Visual Assist方便地使用现成的代码编辑器风格
- ProceedingJoinPoint获取当前方法
- centos7.2 默认启动内核修改
- 记一次在StackOverFlow上问问题的经历
- java.util.logging.Logger使用详解
- MT4平台上mql4实现的基于macd指标的智能交易EA
- MYSQL ERROR 1130: Host is not allowed to connect to this MySQL server
- wordpress 404 error on all pages!
- BeautifulSoup 抓取网站url
- react-redux-store
- LeetCode题解之 Intersection of Two Arrays
- Shell教程 之运算符
- 从零系列--开发npm包(二)
- 「CSA49」Card Collecting Game
- gcc __attribute__
- hbase java api样例(版本1.3.1,新API)
- <;Effective C++>;读书摘要--Resource Management<;二>;
- bootstrap-datetimepicker 开始时间与结束时间互相约束
- [Python]简单的外星人入侵游戏
- javascript跨浏览器事件对象类库
热门文章
- Directory 中user Var 如何添加到通道变量中?
- mysql修改字段长度及pymysql.err.DataError: (1406, ";Data too long for column &#39;name&#39; at row 1";)错误
- linux显示完整目录
- SQL Server管理员必备技能之性能优化
- 关于《common-net》的ftp上传
- Confluence 6 创建-使用-删除快捷链接
- Confluence 6 配置 HTTP 超时设置
- linux下安装nginx及初步认识
- Python基础之继承与派生
- linux下搭建SVN