生成带微信头像的用户二维码

项目需要,要生成带微信用户头像的二维码,谨此记录。首先抓取用户头像,没有自己造轮子自己封装微信接口sdk,我用了安正超大神的easywechat,这个sdk使用方便文档清晰,项目地址 https://easywechat.org。  然后选择生成二维码sdk,在github上找了一圈,最后选用 https://github.com/endroid/QrCode,原因这个star,fork最多

代码:

1、下载easywechatsdk代码 composer require "overtrue/wechat" 引用和配置信息,https://easywechat.org里面有详细的使用配置文档

                                $app = new Application($this->_options);
				$userService = $app->user;
				$user = $userService->get($uopenId);
				$headimgurl = $user->headimgurl;
				if(!$headimgurl){
					$qrmid = UPLOAD_PATH . '/Weixin/hlogo/default1.png';
				} else {
					$content = file_get_contents($headimgurl); // 得到二进制图片内容
					$im = imagecreatefromstring($content);
					imagepng($im, UPLOAD_PATH . '/Weixin/hlogo/' . $uopenId . '.png', 2);
					imagedestroy($im);
					$qrmid = UPLOAD_PATH . '/Weixin/hlogo/' . $uopenId . '.png';
				}
     通过openid获取头像地址并保存到本地服务器(如果用户没有关注公众好获取不到头像地址则用默认的头像作为二维码的logo),由于生成二维码的logo的图片格式需要png格式,所以用imagepng保存用户头像为png格式到本地


2、生成带头像的二维码

      用composer下载endroid代码,include_once引入 VENDER_PATH.'vendor/autoload.php'; 然后使用命名空间use Endroid\QrCode\QrCode;

     

                        $qrCode = new QrCode();
			$qrCode->setText('https://www.baidu.com')
			       ->setSize(300)
			       ->setErrorCorrection('high')
			       ->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))
			       ->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))
			       ->setLogoSize(60)
			       ->setLogo($qrmid);
			
			$qrCode->render(UPLOAD_PATH . '/Weixin/hlogo/1.png');
1.png则为目标二维码
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值