• thinkphp3.2使用PHPQrcode实现二维码


    Thinkphp中没有二维码相关的生成库,百度有不少工具和库 这里就实例一下通过think3.2搭配phpqrcode来完成生成二维码的功能。

    至于phpQrcode库文件 百度很容易找到这里也给大家放个链接

    下载地址:https://sourceforge.net/projects/phpqrcode/files/latest/download?source=typ_redirect

    放置到Thinkphp框架的类文件下

    在“ThinkPHPLibraryVendor”下新建目录phpqrcode,将压缩包内容解压到该文件夹下。

    这里就简单介绍下使用Index控制器。

    在IndexController控制器下添加如下方法:

    public function qrcode($url="www.baidu.com",$level=3,$size=4)
        {
                  Vendor('phpqrcode.phpqrcode');
                  $errorCorrectionLevel =intval($level) ;//容错级别也就是误差 
                  $matrixPointSize = intval($size);//生成二维码图片大小
                 //生成二维码图片 
                  $object = new QRcode();
                  $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);   
           // 使用 -> 或 :: 都可以              
           //$object::png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);
    }
    这样直接访问你的地址路径 就可以看到二维码。
    但是这样二维码 只是生成了 如果想效果更好 比如说 带logo 或者自定义等等......
    这里再教大家 使用phpqrcode 实现代logo的二维码

    先调用phpqrcode生成一张二维码,再使用PHP的image相关函数将logo图片添加到生成的二维码图片上。
    这里我直接放置在项目根目录下了 具体的位置小伙伴们自己定 。


    public function index($url='http://www.baidu.com',$level=3,$size=20){
    Vendor('phpqrcode.phpqrcode');//引入PHPQrcode
    $Level =intval($level) ;//容错级别
    $matrixPointSize = intval($size);//生成图片大小
    //生成二维码图片
    //echo $_SERVER['REQUEST_URI'];
    $url1 = "http://baidu.com";
    $object = new QRcode();
    $time = time();
    $object::png($url1, $time.'.png', $Level, $matrixPointSize, 2);
    $logo = 'logo.png';//准备好想要放置的logo图片
    $QR = $time.'.png';
    if ($logo !== FALSE) {
    $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 / 5;
    $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);
    } //输出图片
    imagepng($QR, $time.'hc.png');

    echo '<img src='.__ROOT__.'/'.$time.'hc.png width="100px" height="100px">';
    $img =__ROOT__.'/'.$time.'hc.png';

    sleep(10);//10秒后删除
    unlink($img);生成删除这个二维码
    }

    到此两种二维码的生成以经结束 大家自己试验一下吧!
  • 相关阅读:
    捕获Java线程池执行任务抛出的异常
    Java Singleton 单例模式
    深度解析Java内存的原型及工作原理
    使用Spring管理数据源连接池
    Java中用内存映射处理大文件
    基于Java阻塞队列的搜索实例
    Java学习之将图片文件保存到数据库
    Java使用反射调用方法
    Java程序员易犯的10个SQL错误
    Hibernate中的数据库增改删查操作
  • 原文地址:https://www.cnblogs.com/bcphp/p/7084286.html
Copyright © 2020-2023  润新知