使用如下
composer require bacon/bacon-qr-code
或者在composer.json里添加
"bacon/bacon-qr-code": "^2.0",
/**
* 生成二维码
*/
public function myQrcode()
{
$uid = $this->uid;
$user = Db::name('member')->where('id', $uid)->find();
if(!$user) {
return self::returnMsg(201, '未找到当前会员信息');
}
if($user['status'] != 3) {
return self::returnMsg(201, '你已被禁用');
}
$domain = get_sysconfig('xxl_imgdomain', 'base');
$domain = rtrim($domain, '/');
$qt_url = get_sysconfig('qt_url', 'base');
$qt_url = rtrim($qt_url, '/');
$url = $qt_url.'/#/pages/my/invitation-register/invitation-register?pid='.$uid;
$md5_qturl = md5($qt_url);
// 在短链系统上生成
$dl_jkurl = get_sysconfig('dl_jkurl', 'base');
$dl_jkurl = rtrim($dl_jkurl, '/');
$cs = ['url' => $url];
$res = curl($dl_jkurl.'/api/v1/shortlink/setLink', $cs, 'POST');
$res = json_decode($res, true);
if($res['code'] == 200 && isset($res['data']['info'])) {
$url = $dl_jkurl.$res['data']['info'];
}
$name = root_path().'/public/qrcode/'.$md5_qturl.'_'.$uid.'.png';
if(file_exists($name)) {
// @unlink($name);
$img = $domain.'/qrcode/qrcode_'.$uid.'.png';
return self::returnMsg(200, 'success', $img);
}
$renderer = new \BaconQrCode\Renderer\ImageRenderer(
new \BaconQrCode\Renderer\RendererStyle\RendererStyle(500),
new \BaconQrCode\Renderer\Image\ImagickImageBackEnd()
);
$writer = new \BaconQrCode\Writer($renderer);
$writer->writeFile($url, $name);
$img = $domain.'/qrcode/'.$md5_qturl.'_'.$uid.'.png';
// $img = file_get_contents($name); var_dump('<img src="'.$img.'">');die;
// $img = base64_encode($img);
// ob_end_clean();
// ob_start();
// echo file_get_contents($name);
// $img = ob_get_contents();
// ob_end_clean();
// $img = base64_encode($img);var_dump($img);die;
return self::returnMsg(200, 'success', $img);
}$renderer = new BaconQrCodeRendererImagePng();
$renderer->setHeight(256);
$renderer->setWidth(256);
$writer = new \BaconQrCode\Writer($renderer);
//输出到浏览器
header('content-type: image/png');
echo $writer->writeString('Hello World!');