ThinkPHP框架发展到今天功能已经变得是非常强大了,但是ThinkPHP框架中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能。想使用phpqrcode首先就要把phpqrcode代码包下载下来,大家可以去官网下载,也可以在网络上搜索进行下载,这里我为大家提供的有一份 phpqrcode代码包。下载地址:phpqrcode代码包

下面开始讲述如何在ThinkPHP框架中整合phpqrcode生成二维码,这是我已经整合好的样例,感兴趣的可以下载下来进行学习。

下载:ThinkPHP框架整合phpqrcode生成二维码DEMO

1、将phpqrcode整合到ThinkPHP框架

在“ThinkPHP\Library\Vendor\”下新建目录phpqrcode,将phpqrcode代码压缩包内容解压到该文件夹下。

2、调用phpqrcode生成二维码

在控制器下或者在“/Application/Common/Common/function.php”添加如下函数方法(本人是在控制器中写的):

  1. /**
  2. * 调用phpqrcode生成二维码
  3. * @param string $url 二维码解析的地址
  4. * @param int $level 二维码容错级别
  5. * @param int $size 需要生成的图片大小
  6. */
  7. public function qrcode($url = "http://blog.csdn.net/zhihua_w", $level = 3, $size = 4)
  8. {
  9. Vendor('phpqrcode.phpqrcode');
  10. //容错级别
  11. $errorCorrectionLevel = intval($level);
  12. //生成图片大小
  13. $matrixPointSize = intval($size);
  14. //生成二维码图片
  15. $object = new \QRcode();
  16. //第二个参数false的意思是不生成图片文件,如果你写上‘picture.png’则会在根目录下生成一个png格式的图片文件
  17. $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
  18. }

访问:http://127.0.0.1/thinkphp_phpqrcode/index.php/Home/Index/qrcode 即可看到二维码

到这里已经可以生成二维码了;如果想对二维码更加个性化定制的话下面具体说一下png() 函数的使用。

  1. png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false, $back_color = 0xFFFFFF, $fore_color = 0x000000);

① 第一个参数$text:就是上面代码里的URL网址参数;

② 第二个参数$outfile:默认为否;不生成文件;只将二维码图片返回;否则需要给出存放生成二维码图片的路径;

③ 第三个参数$level:默认为L;这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%);这个参数控制二维码容错率;不同的参数表示二维码可被覆盖的区域百分比。利用二维维码的容错率;我们可以将头像放置在生成的二维码图片任何区域;

④ 第四个参数$size:控制生成图片的大小;默认为4;

⑤ 第五个参数$margin:控制生成二维码的空白区域大小;

⑥ 第六个参数$saveandprint:保存二维码图片并显示出来;$outfile必须传递图片路径;

⑦ 第七个参数$back_color:背景颜色;

⑧ 第八个参数$fore_color:绘制二维码的颜色;

注:第七、第八个参数需要传16进制是色值;并且要把“#”替换为“0x”
             例如:
                        白色:#FFFFFF  =>  0xFFFFFF  
                        黑色:#000000  =>  0x000000

如果想了解更多用法,可以直接参考官方网站源代码了;http://phpqrcode.sourceforge.net/

3、生成带logo的二维码

在控制器下或者在“/Application/Common/Common/function.php”添加如下函数方法(本人是在控制器中写的):

  1. /**
  2. * 生成带logo的二维码图片
  3. */
  4. public function qrcodeWithPicture()
  5. {
  6. Vendor('phpqrcode.phpqrcode');
  7. $object = new \QRcode();
  8. //二维码内容
  9. $url = 'http://blog.csdn.net/zhihua_w';
  10. //容错级别
  11. $errorCorrectionLevel = 'L';
  12. //生成图片大小
  13. $matrixPointSize = 6;
  14. //生成一个二维码图片
  15. $object->png($url, 'zhihua_w.png', $errorCorrectionLevel, $matrixPointSize, 2);
  16. //准备好的logo图片,本人放在了根目录下
  17. $logo = 'logo.png';
  18. //已经生成的原始二维码图,也在根目录下
  19. $qrcode = 'zhihua_w.png';
  20. //logo图片存在
  21. if ($logo !== FALSE) {
  22. $qrcode = imagecreatefromstring(file_get_contents($qrcode));
  23. $logo = imagecreatefromstring(file_get_contents($logo));
  24. $qrcode_width = imagesx($qrcode);   //二维码图片宽度
  25. $qrcode_height = imagesy($qrcode);  //二维码图片高度
  26. $logo_width = imagesx($logo);       //logo图片宽度
  27. $logo_height = imagesy($logo);      //logo图片高度
  28. $logo_qr_width = $qrcode_width / 5;
  29. $scale = $logo_width / $logo_qr_width;
  30. $logo_qr_height = $logo_height / $scale;
  31. $from_width = ($qrcode_width - $logo_qr_width) / 2;
  32. //重新组合图片并调整大小
  33. imagecopyresampled($qrcode, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
  34. $logo_qr_height, $logo_width, $logo_height);
  35. }
  36. //输出图片
  37. imagepng($qrcode, 'zhihua_w_logo.png');
  38. echo '<img src="http://127.0.0.1/thinkphp_phpqrcode/zhihua_w_logo.png">';
  39. }

方法思路:先调用phpqrcode生成一张二维码,再使用php的image相关函数将logo图片添加到生成的二维码图片上。

至此,此项目完满结束!

ThinkPHP框架整合phpqrcode生成二维码DEMO的更多相关文章

  1. thinkphp整合系列之phpqrcode生成二维码

    php生成二维码其实挺简单的:当然指的是使用qrcode类库: 因此关于是否要写这篇博客:我是犹豫了再三的: 不过最后还是决定写下吧:如果有童鞋急着用:就可以直接引了: 再个也可以作为即将写的文章微信 ...

  2. Thinkphp3.2结合phpqrcode生成二维码(含Logo的二维码),附案例

    首先,下载phpqrcode,将其解压到项目ThinkPHP\Library\Vendor目录下.Index_index.html(模板可自行配置) <form action="{:U ...

  3. phpqrcode 生成二维码

    这个项目需要根据信息来自动生成二维码,到网上搜了下,发现php有生成二维码的类库phpqrcode,所以打算就用这个来生成二维码 从官网下载类库源码http://sourceforge.net/pro ...

  4. RHEL 5 安装phpqrcode生成二维码

    VMWARE中全新安装(默认)RHEL. 之后,yum 安装备apache/php 下载并上传phpqrcode 1.1.4版本,并将其解压至/var/www/html/phpqrcode (去掉ip ...

  5. 使用phpqrcode生成二维码

    使用PHP语言生成二维码,还是挺有难度的,当然调用生成二维码图片的接口(比如:联图网http://www.liantu.com/的接口)除外,如果自己写代码生成,真的无从下手.然而,我们可以使用php ...

  6. 使用PHP类库PHPqrCode生成二维码

    PHPqrCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo, 查看地址:http://phpqrcode.sourceforge.net/.    下载官 ...

  7. php使用phpqrcode生成二维码

    前期准备: 1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是 ...

  8. php 使用phpqrcode生成二维码并上传到OSS

    一般情况调用phpqrcode第三方插件 会把生成的二维码图片保存到服务器,不保存服务器也会以header头的形式输出到浏览器,(我们不允许把图片文件保存的liunx服务器,只能保存到阿里云OSS存储 ...

  9. phpqrcode生成二维码

    这篇文章讲解得非常详细: https://www.jb51.net/article/136418.htm 备注一下: 如果遇到生成的二维码是一串乱码.只需要在代码最后加上 exit();即可解决,原理 ...

随机推荐

  1. hdu 6441 (费马大定理+勾股数 数学)

    题意是给定 n 和 a,问是否存在正整数 b,c 满足:a^n + b^n == c^n.输出 b  c,若不存在满足条件的 b,c,输出 -1 -1. 当 n > 2 时,由费马大定理,不存在 ...

  2. Nginx 学习笔记(九)申请Let's Encrypt通配符HTTPS证书

    Let's Encrypt 宣布 ACME v2 正式支持通配符证书,并将继续清除 Web 上采用 HTTPS 的障碍,让每个网站轻松获取管理证书.消息一出,马上就有热心用户分享出了 Let's En ...

  3. svn各种表示含义及解决

  4. 12个实用的 JavaScript 框架分享给前端开发者

    JavaScript库是预先编写的 JavaScript 工具代码,让开发者可以更容易开发 JavaScript 应用.这个列表我们列出了2017年1月份功能丰富的 JavaScript 库,可以帮助 ...

  5. memset赋值

    比较神奇的事情 可能和二进制有关系吧 #include<bits/stdc++.h> using namespace std; ]; int main(){ memset(f,,sizeo ...

  6. MySQL图形化管理工具

    PHPMyAdmin(关于web界面的) Navicat MySQL Workbench

  7. GDI+学习---2.GDI+编程模式及组成类

    在使用GDI+的时候,您不必像在GDI中那样关心设备场景句柄,只需简单地创建一个Graphics对象,然后以您熟悉的面向对象的方式(如myGraphicsObject.DrawLine(paramet ...

  8. ES学习

    官方参考手册 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html https://www.elastic.co ...

  9. Shiro入门 - 通过自定义Realm连数数据库进行授权

    shiro-realm.ini [main] #自定义Realm myRealm=test.shiro.MyRealm #将myRealm设置到securityManager,相当于Spring中的注 ...

  10. ionic 照相机 Camera

    1.官网: https://ionicframework.com/docs/native/camera/#DestinationType 2.引入插件 $ ionic cordova plugin a ...