第一步:在服务器上项目根目录新建一个目录(Static),并给最大权限!如下图
第二步:打开本地电脑C盘里Windows下面的Fonts.如下图:
第三步:将本地的Fonts整个目录传到服务器的Static目录里并也赋予最高权限.
第四步:控制器里面代码为:
Vendor("phpqrcode");
// 把生成二维码图片保存到本地
$path = "Public/Uploads/" . $user_id . ".png"; //本地文件存储路径
// 纠错级别:L、M、Q、H
$level = 'H';
// 点的大小:1到10,用于手机端4就可以了
$size =5;
$object=new \QRcode();
//var_dump($object);die;
$object->png($url,$path,$level,$size);
//imagepng($bigImg);exit;//推广二维码生成
//给生成的二维码图片添加背景图(方法一)
// $image=new \Think\Image();
// $image->open('./Public/Uploads/back.png')->water($path,array(240,860),100)->save("./Public/Uploads/".$usermobile.".jpg");
//给生成的二维码添加背景图(方法二)
$bigImgPath = 'Public/Uploads/back.png';
$qCodePath = $path;
$bigImg = imagecreatefromstring(file_get_contents($bigImgPath));
$qCodeImg = imagecreatefromstring(file_get_contents($qCodePath));
list($qCodeWidth, $qCodeHight, $qCodeType) = getimagesize($qCodePath);
// imagecopymerge使用注解
imagecopymerge($bigImg, $qCodeImg, 255, 875, 0, 0, $qCodeWidth, $qCodeHight, 100);
list($bigWidth, $bigHight) = getimagesize($bigImgPath);
$yourname = $usermobile;
$red = imagecolorallocate($bigImg, 241,215, 60);
imagefttext($bigImg, 30, 0, 310, 728, $red, 'Static/Fonts/msyhbd.ttf', $yourname);
header('Content-Type:image/png');
$savepath="Public/Uploads/".$usermobile.".png"; //推广二维码本地存储路径
imagepng($bigImg,$savepath);//推广二维码存到本地
$this->assign("usermobile",$usermobile);
$this->display();
注意有一处路径必须写对!如下图(红圈带双箭头的地方):