$bigImgPath = 'http://' . $_SERVER['SERVER_NAME'].'/'.$filename; //获得底图的路径
$img = imagecreatefromstring(file_get_contents($bigImgPath));
putenv('GDFONTPATH=' . realpath('.'));
$font = "MSYH";//字体,字体文件需保存到相应文件夹下 //liunx默认没有字体需要下载
$black = imagecolorallocate($img, 0, 0, 0);//字体颜色 RGB
$fontSize = 20; //字体大小
$circleSize = 0; //旋转角度
$left = 10; //左边距
$top = 30; //顶边距
imagefttext($img, $fontSize, $circleSize, $left, $top, $black, $font, '测试一下');
/*如果putenv()报错putenv() has been disabled for security reasons 是因为tp5.1没有调用putenv 可以将$font 改为
$font = realpath('MSYH.TTF'); //根目录下的路径*/
list($bgWidth, $bgHight, $bgType) = getimagesize($bigImgPath);
// return $img;
if($bgType == 3){
header("Content-type: image/png");
$filename = 'uploads/qrcode/' . rand(10000, 99999) . time() . '.png';
imagepng($img,$filename); //在 images 目录下就会生成一个 circle.png 文件,上面也可设置相应的保存目录及文件名。
}
// print_r($filename);
return $filename;
imagedestroy($img);
注意:我这的图片默认的都是png格式 所以我直接写的$bgType == 3
如果是其他图片可以写成:、
list($bgWidth, $bgHight, $bgType) = getimagesize($bigImgPath);
switch ($bgType) {
case 1: //gif
header('Content-Type:image/gif');
imagegif($img);
break;
case 2: //jpg
header('Content-Type:image/jpg');
imagejpeg($img);
break;
case 3: //png
header('Content-Type:image/png');
imagepng($img,"images/circle.png"); //在 images 目录下就会生成一个 circle.png 文件,上面也可设置相应的保存目录及文件名。
break;
default:
break;
}
imagedestroy($img);
将生成好的文件上传到服务器上用 imagepng 方法(jpg和gif未尝试)
liunx服务器下默认没有 MSYH.TTF 字体需要下载 下载后放在根目录下 tp5 也就是public目录下
这个字体不能直接引用 需写成:
putenv('GDFONTPATH=' . realpath('.'));
$font = "MSYH";//字体,字体文件需保存到相应文件夹下
亲测可用