发布于 5年前
php 原生代码为图片添加文字水印
public function share_img($schedule_number){
$bigImgPath = asset('images').'/shar.png'; //获取底图
try{
// $img = imagecreatefromstring(file_get_contents($bigImgPath)); //读取图片 读取缓慢 建议不用
$fun = 'imagecreatefrom' . 'png';
$img = $fun($bigImgPath); //调取PHP 的gd方法 推荐
}catch (\Exception $e){
return ['message'=>'生成图片异常'];
}
$font = public_path('images').'/yuemo.OTF';//字体,字体文件需保存到相应文件夹下 //加载字体
$black = imagecolorallocate($img, 204, 153, 102); //字体颜色 RGB
$fontSize = 40; //字体大小
$circleSize = 0; //旋转角度
// $left = 250; //左边距
$top = 570; //顶边距
$width = 750;
$content = isset($schedule_show->title) ? $schedule_show->title : ''; //文字内容
$fontBox = imagettfbbox($fontSize, 0, $font, $content); //文字水平居中实质
imagefttext($img, $fontSize, $circleSize, ceil(($width - $fontBox[2]) / 2), $top, $black, $font, $content); //实现文字在图片居中
header('content-type:image/png');
if(!file_exists(storage_path('app/public/').'fx')) {
mkdir(storage_path('app/public/').'fx');
}
$imagename = $schedule_number.'.png';
imagepng($img,storage_path('app/public/fx/').$imagename); //生成图片 第二参为图片存储路径
imagedestroy($img); //释放
return ['message'=>'success','result'=>['url'=>url('storage').'/fx/'.$imagename]]; //返回
}