您现在的位置是:网站首页 > 心得笔记

使用PHP类库PHPqrCode生成二维码

盛悦2019-06-203243人围观
简介前一篇讲了使用endroid/qrcode PHP生成带LOGO二维码,这里总结下我常用的PHPqrcode生成二维码的demo

1、下载phpqrcode

官网地址:http://phpqrcode.sourceforge.net/

下载后将包安放在你项目的相关目录,我这里放置在了项目根目录下

2、基本用法

use Qrcode;
...
public function test () {
    include '/phpqrcode/phpqrcode.php';
    QRcode::png('http://blog.blonglee.me');
//  QRcode::png('code data text', 'filename.png'); // 创建filename.png二维码图片并保存 不直接在浏览器显示二维码 扫描后显示code datatext文字
    exit;//与上一篇讲解的相同  加exit;会正确输出二维码图片 不加exit;直接输出字符串
}
...

运行效果

z1.png

3、高级用法

use Qrcode;
...
public function test () {
    $value="http://blog.blonglee.me";
    $errorCorrectionLevel = 'L';//容错级别
    $matrixPointSize = 6;//生成图片大小
    //生成二维码图片
    QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);
    $logo = $_SERVER['DOCUMENT_ROOT'].'/front/images/like.jpg';//准备好的logo图片  绝对路径
    $QR = 'qrcode.png';//已经生成的原始二维码图 即不带LOGO的二维码图
    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; //logo图片在二维码图片中宽度大小
        $scale = $logo_width/$logo_qr_width;
        $logo_qr_height = $logo_height/$scale; //logo图片在二维码图片中高度大小
        $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);
    }
    Header("Content-type: image/png");
    //1、直接输出二维码图到浏览器
    ImagePng($QR);
    //2、保存二维码图到本地
    // $filename = "023.png";
    // imagepng($QR,$filename); // 保存最终生成的二维码到本地
    exit;
}
...

运行效果

s.png