当前位置:首页 > PHP教程 >

使用phpqrcode生成二维码

发布时间:2020-08-28 16:23:21 作者:佚名 阅读:(12)

最近做的网站需要在文章页面需要生成二维码,这里我们可以借助于phpqrcode类来生成二维码,接下来吾爱编程为大家介绍一下使用phpqrcode生成二维码的方法,有需要的小伙伴可以参考一下:

1、下载类文件

 https://nchc.dl.sourceforge.net/project/phpqrcode/releases/phpqrcode-2010100721_1.1.4.zip

2、png格式生成方法:

public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
{
    $enc = QRencode::factory($level, $size, $margin);
    return $enc->encodePNG($text, $outfile, $saveandprint=false);
}

3、参数详解:

参数介绍
$text
二维码包含的内容,可以是链接、文字、json字符串等等
$outfile
默认为false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径;
$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必须传递图片路径;

4、生成实例:

    (1)、生成原始的二维码:

/*
 * $url url地址
 */
function qrcodePng($url=''){
    require_once 'phpqrcode/phpqrcode.php';
    $value = $url;             //二维码内容
    $errorCorrectionLevel = 'L';   //容错级别
    $matrixPointSize = 5;        //生成图片大小
    //生成二维码图片
    $filename = 'phpqrcode/'.time().'.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
    $QR = $filename;            //已经生成的原始二维码图片文件
    $QR = imagecreatefromstring(file_get_contents($QR));
    //输出图片
    imagepng($QR, 'qrcode.png');
    imagedestroy($QR);
    return '<img src="qrcode.png" alt="原始二维码生成">';
}
echo  qrcodePng('https://www.itbiancheng.com');

    (2)、生成带logo二维码:

/*
 * $url url地址
 */
function qrcodePng($url=''){
    require_once 'phpqrcode.php';
    $value = $url;             //二维码内容
    $errorCorrectionLevel = 'H';   //容错级别
    $matrixPointSize = 6;        //生成图片大小
    //生成二维码图片
    $filename = 'qrcode_logo.png';
    QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
    $logo = 'logo.jpg';    //准备好的logo图片
    $QR = $filename;         //已经生成的原始二维码图
    if (file_exists($logo)) {
        $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;    //组合之后logo的宽度(占二维码的1/5)
        $scale = $logo_width/$logo_qr_width;       //logo的宽度缩放比(本身宽度/组合后的宽度)
        $logo_qr_height = $logo_height/$scale;  //组合之后logo的高度
        $from_width = ($QR_width - $logo_qr_width) / 2;   //组合之后logo左上角所在坐标点
        /*
         * 重新组合图片并调整大小
         * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
         */
        imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);
    }
    //输出图片
    imagepng($QR, 'qrcode_logo.png');
    imagedestroy($QR);
    imagedestroy($logo);
    return '<img src="qrcode_logo.png" alt="带logo二维码生成">';
}
echo  qrcodePng('https://www.itbiancheng.com');

    (3)、二维码直接输出到浏览器

/*
 * $url url地址
 */
function qrcodePng($url=''){
    require_once 'phpqrcode.php';
    $value = $url;             //二维码内容
    $errorCorrectionLevel = 'L';   //容错级别
    $matrixPointSize = 5;        //生成图片大小
    //生成二维码图片
    $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
qrcodePng('https://www.itbiancheng.com');

以上三种生成二维码的方法,前两种都会生成对应的图片文件,第三种不会生成文件,小伙伴们可以根据自己的需求选择对应的生成方法


以上就是吾爱编程为大家介绍的关于使用phpqrcode生成二维码的生成方法,了解更多相关文章请关注吾爱编程网!

欢迎分享转载→ 使用phpqrcode生成二维码

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们