PHP 生成二维码
发布时间:2024-03-07

    利用PHP QRcode生成二维码;
    php QRcode 官网 http://phpqrcode.sourceforge.net/

    在官网下载 phpqrcode.php就ok啦;

    然后,查看自己的php环境是否开启GD2,若没有,开启支持即可;

    利用 phpqrcode.php 的 function png() 方法便可生成最基本的二维码;

    <?php
    include 'phpqrcode.php';
    $value = 'http://www.cnblogs.com/laowenBlog/'; //二维码内容
    QRcode::png( $value );
    ?>

    实际应用中,我们要在二维码的中间加上自己的LOGO。代码如下:

    <?php
    
    
    include 'phpqrcode.php';                       // 引入phpqrcode.php
    $value = 'http://www.cnblogs.com/laowenBlog/';  // 要生成的二维码的内容
    $errorCorrectionLevel = 'H';                    // 容错级别
                                                    // L 7%的字码可被修正
                                                    // M 15%的字码可被修正
                                                    // Q 25%的字码可被修正
                                                    // H 30%的字码可被修正
    $matrixPointSize = 10;                          // 生成图片大小
    $img = "img.png";                               // 生成图片的名字
    //生成二维码图片
    QRcode::png( $value $img $errorCorrectionLevel $matrixPointSize 3 );
                                                    // 参数1 二维码的内容
                                                    // 参数2 生成二维码图片的名字
                                                    // 参数3 二维码识别的容错级别
                                                    // 参数4 生成二维码的图片的大小
                                                    // 参数5 二维码周围边框空白区域间距值
    $logo = 'logo.png';                             // 准备好的logo图片
    $QR = $img;                                     // 已经生成的原始二维码图
    // 判断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 / 4;
        $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 'ok.png');
    echo '<img src="ok.png">';
    die();
    ?>