PHP生成二维码

PHP QR Code生成二维码

简介:

PHP QR Code是php生成二维码的类库
下载地址:https://sourceforge.net/projects/phpqrcode/files/

流程:

解压文件后,调用phpqrcode.php文件的png方法即可生成最初级的二维码

实例:(下面程序即可生成最简单的二维码)
<?php
    $data = 'XXXXX';
    QRcode::png($data);//类库中其他参数有默认          png方法的配置可看下面png方法详细介绍
?>

png方法:

注意: (从phpqrcode中取出来的,也算是生成二维码的核心方法)
/*
 *@param $text 要生成二维码的数据,没有初始值
 *@param $outfile 是否输出二维码图片 文件,默认否
 *@param $lenvel 容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%)
 *@param $size表示生成图片大小,默认是3
 *@param $margin表示二维码周围边框空白区域间距值
 *@param $saveandprint表示是否保存二维码并 显示
*/
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);
}

/*
 *@param $frame 要生成二维码的数据,没有初始值
 *@param $filename 文件名
 *@param $size表示生成图片大小,默认是3 == $pixelPerPoint = 4
 *@param $margin表示二维码周围边框空白区域间距值 == $outerFrame
 *@param $saveandprint表示是否保存二维码并 显示 == $saveandprint
*/
 public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) 
 {
        $image = self::image($frame, $pixelPerPoint, $outerFrame);

        if ($filename === false) {
            Header("Content-type: image/png");
            ImagePng($image);
        } else {
            if($saveandprint===TRUE){
                ImagePng($image, $filename);
                header("Content-type: image/png");
                ImagePng($image);
            }else{
                ImagePng($image, $filename);
            }
  }

        ImageDestroy($image);
    }

扩展:

给二维码里嵌入图片。
原理:就是用php的gd库处理两张图片,把logo镶嵌在二维码的中央即可

代码示例:


<?php
    include_once './QRcode/phpqrcode.php';
    header('content-type:text/html;charset=utf-8');
    //png函数的配置
    $data = '敦煌的驼铃';
    $level = 'L';
    $size = 6;
    $margine = 2;
    $filename = 'qrcode.png';
    //生成二维码
    QRcode::png($data,$filename,$level,$size,$margine);
    //二维码和合并的图片文件名
    $QRcode = './qrcode.png';
    $image = './guangzhou.png';
    //imagecreatefromstring() 从字符串中的图像流新建一图像 
    $QR = imagecreatefromstring(file_get_contents($QRcode));
    $IMG = imagecreatefromstring(file_get_contents($image));
    $QR_width = imagesx($QR);
    $QR_height = imagesy($QR);
    $IMG_width = imagesx($IMG);
    $IMG_height = imagesy($IMG);
    $QR_IMG_width = $QR_width/5;
    $tmp = $IMG_width/$QR_IMG_width;
    $QR_IMG_height = $IMG_height/$tmp;
    $width = ($QR_width-$QR_IMG_width)/2;
    //从新组合  imagecopyresampled()重采样拷贝部分图像并调整大小 
    imagecopyresampled($QR,$IMG,$width,$width,0,0,$QR_IMG_width,$QR_IMG_height,$IMG_width,$IMG_height);
    /*
    //如果需要生成图片文件html引用的
    imagepng($QR,'newqrcode.png');
    echo '<img src="newqrcode.png">';
    */

    /*
    //如果不生成图片文件,直接输出
    Header("Content-type: image/png");
    ImagePng($QR);
    */
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值