使用phpqrcode类库生成二维码这里我们只需要了解一个类库中的方法:

1. 原型

1
2
3
4
5
public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint = false, $back_color = 0xFFFFFF, $fore_color = 0x000000)
{
$enc = QRencode::factory($level, $size, $margin, $back_color, $fore_color);
return $enc->encodePNG($text, $outfile, $saveandprint = false);
}

2. 参数解析

$text表示生成二位的的信息文本;

$outfile表示是否输出二维码图片文件,默认否;

$level表示容错率,也就是有被覆盖的区域还能识别,分别是L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);

$size表示生成图片大小,默认是3;

$margin表示二维码周围边框空白区域间距值;

$saveandprint表示是否保存二维码并显示。

3. 事例

实例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//引入类
include "phpqrcode-master/phpqrcode.php";
//准备数据
$data = "http://www.baidu.com";
//生成文件的名字
$dirname = "test.png";
//错误的级别 L M Q
$error = "L";
$matSize = 20;
//静态
QRcode::png($data, $dirname, $error, $matSize, 2);
QRcode::png($data);

实例二(容易接受吧):

1
2
3
<?php
include "phpqrcode-master/phpqrcode.php";
QRcode::png('http://www.baidu.com');
  1. 如果要加上logo,即可以生成的图片创建图层。再利用 PHP中的GD函数库中介绍的方法贴图即可。

  2. 给二维码添加logo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
include 'phpqrcode.php';
$value = 'http://www.helloweba.com';
//二维码内容
$errorCorrectionLevel = 'L';
//容错级别
$matrixPointSize = 6;
//生成图片大小 //生成二维码图片
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);
$logo = 'logo.png';
//准备好的logo图片
$QR = 'qrcode.png';
//已经生成的原始二维码图
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;
$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, 'helloweba.png');
echo '<img src = "helloweba.png">';

本文早期发布于个人 CSDN 博客:查看原文

站内搜索

没有找到内容!