Qr Code 二维码的生成与解码

生成二维码

不带logo的二维码

require_once("../phpqrcode/qrlib.php");

// 图片名, 默认为false,直接输出
$fileName = 'qr.jpg';
// 纠错级别:L、M、Q、H
$level    = QR_ECLEVEL_L;
// size, 默认为3
$size     = 5;
// margin, 默认为4
$margin   = 4;

// qr.jpg图片生成到根目录
QRcode::png('哈哈!刷上了就赶紧收藏点赞·', $fileName, $level, $size, $margin);

// display根目录下的qr.jpg
echo '< img src="' . $fileName . '" />';die;

带logo的二维码

require_once("../phpqrcode/qrlib.php");

// 图片名, 默认为false,直接输出
$fileName = 'qr.jpg';
// 纠错级别:L、M、Q、H
$level    = QR_ECLEVEL_L;
// size, 默认为3
$size     = 5;
// margin, 默认为4
$margin   = 4;

//qr.jpg图片生成到根目录
QRcode::png('哈哈!刷上了就赶紧收藏点赞·', $fileName, $level, $size, $margin);

//display根目录下的qr.jpg
//echo '< img src="' . $fileName . '" />';die;

$logo = 'C:\\Users\\Administrator\\Desktop\\file\\4.jpg';

// 上一步类QRcode的png方法中二维码已经生成并且保存在根目录,直接用$fileName就代表其图片路径
$qr   = imagecreatefromstring(file_get_contents($fileName));    
$logo = imagecreatefromstring(file_get_contents($logo));

if($logo && $qr) {
    $qrWidth      = imagesx($qr);    
    $qrHeight     = imagesy($qr);
    $logoWidth    = imagesx($logo);
    $logoHeight   = imagesy($logo);

    $logoQrWidth  = $qrWidth / 9;    
    $scale = $logoWidth / $logoQrWidth;    
    $logoQrHeight = $logoHeight / $scale;

    // 使logo居中
    $fromWidth  = ($qrWidth - $logoQrWidth) / 2;
    $fromHeight = ($qrHeight - $logoQrHeight) / 2;
    // 组合图片  
    imagecopyresampled($qr, $logo, $fromWidth, $fromHeight, 0, 0, $logoQrWidth, $logoQrHeight, $logoWidth, $logoHeight);

    header("Content-type: image/jpg");
    // 直接输出图像流
    imagejpeg($qr);
}

解码二维码

下载decoder,需要使用composer去加载类。

require_once("../Zxing/QrReader.php");
$qrcode = new QrReader('qr_logo.jpg');
$text = $qrcode->text();

// 输出
echo $text;die;
联系我们

邮箱 626512443@qq.com
电话 18611320371(微信)
QQ群 235681453

Copyright © 2015-2024

备案号:京ICP备15003423号-3