生成二维码后叠加LOGO并转换成base64

本文介绍了一种使用PHP生成带有Logo的二维码的方法。通过构造特定URL并获取二维码图像数据,再将Logo叠加到二维码上,最终输出为Base64编码的图像数据。适用于需要个性化二维码的应用场景。
function _make_qrcode($uwxurl){
	$qrcode_url = "https://pan.baidu.com/share/qrcode?w=500&h=500&url=".$uwxurl;
	$image_info = getimagesize($qrcode_url);
	$image_data = httpGet($qrcode_url);
	$qr = 'data:' . $image_info['mime'] . ';base64,' . base64_encode($image_data);
	
	$logo = './img/weixin.png';//准备好的logo图片 
	
	if ($logo) {
		ob_start();
		 $qr = imagecreatefromstring(file_get_contents($qr)); 
		 $logo = imagecreatefromstring(file_get_contents($logo)); 
		 $qr_width = imagesx($qr);//二维码图片宽度 
		 $qr_height = imagesy($qr);//二维码图片高度 
		 $logo_width = imagesx($logo);//logo图片宽度 
		 $logo_height = imagesy($logo);//logo图片高度 
		 $logo_qr_width = $qr_width / 4; 
		 $scale = $logo_width/$logo_qr_width; 
		 $logo_qr_height = $logo_height/$scale; 
		 $from_width = ($qr_width - $logo_qr_width) / 2;
		 //重新组合图片并调整大小 
		 imagecopyresampled($qr,$logo,$from_width,$from_width,0,0,$logo_qr_width,$logo_qr_height,$logo_width, $logo_height);
		 ob_start();
		 imagejpeg($qr, null, 80);
		 $data = ob_get_clean();

		 //转换成base64
		 $qr = "data:image/png;base64,".base64_encode($data);
	}
	
	return $qr;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值