- A+
不多说了,生成二维码就用经典的QRcode插件完成。
至于生成二维码后怎么添加自己的logo图片呢。
过程分析:把需要放入的logo图片缩小放入二维码图片的中间。
具体过程:1,计算出在二维码中可以放入logo图片的位置(图片是以左上角开始计算的)
如上图:公式为(qr_x-(qr_x/5))/2 即为 logo图片插入二维码图片的起始位置
2,logo图片有不规则的需要将其切为正方形方可放入二维码中,如果是正方形直接按尺寸缩小即可。如果不是正方形则可以按照自己的需要切相应的部分,然后放入二维码。
3,使用imagecopyresampled函数(gd库的扩展函数)如下:
imagecopyresampled($qr,$log,0,0,0,0,$targ_w,$targ_h,$logo_x,$logo_y); // 目标图 源图 目标X坐标点(画的起点) 目标Y坐标点(画的启迪啊) 源的X坐标点 源的Y坐标点 目标宽度(画的结束) 目标高度(画的结束) 源图宽度 源图高度
从第三个参数开始定义 a,b,c,d,e,f,g,h
a,b 为二维码开始的坐标 x,y
c,d 为logo图片的要取的开始坐标x1,y1
e,f 为logo图片缩小后的宽和高(正常的都是一样的)
g,h 为logo图片要取的宽和高
最后附源码
<?php $file = '1137.png'; $header_pic = "http://wx.qlogo.cn/mmopen/fhRsBY3FKADO0WumicdRCPY321IGsFA8Iv1zp06CkulDI95hUymI5I2HV6EzibzF7IDOqly1zNypt6Kiaq555eEeEScO9F559YK/0"; $header_pic = "gg.jpg"; /* 添加logo start */ $source_qr = imagecreatefrompng($file); var_dump("source1".$source_qr); echo '<hr>'; $source_logo = imagecreatefromjpeg($header_pic); var_dump("source2".$source_logo); echo '<hr>'; $qr_width = imagesx($source_qr); // 二维码宽度 echo $qr_width."<br>"; $qr_height = imagesy($source_qr); //二维码高度 echo $qr_height."<br>"; //die; $logo_width = imagesx($source_logo);//logo宽度 echo $logo_width."<br>"; $logo_height = imagesy($source_logo);//logo高度 echo $logo_height."<br>"; $logo_qr_width = $qr_width / 5; // 二维码缩小5倍 echo $logo_qr_width."<br>"; $scale = $logo_width/$logo_qr_width; // logo 除以 5倍小的二维码 echo $scale."<br>"; $logo_qr_height = $logo_height/$scale; echo $logo_qr_height; echo '<hr>'; $from_width = ($qr_width-$logo_qr_width)/2; // 二维码宽度减去自己小5倍的宽度 再除以2 echo $from_width; echo '<hr>'; $result = imagecopyresampled($source_qr,$source_logo,$from_width,$from_width,0,0,$logo_qr_width,$logo_qr_height,$logo_width,$logo_height); imagejpeg($source_qr,"aa.jpg",60); imagedestroy($source_qr); imagedestroy($source_logo);
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-