2维码生成类phpqrcode(可生成带logo)
2017-07-28
后端
<?php
/*
Data表示要记录的数据,如果是存储utf-8编码的中文,最多984个。
ECC表示纠错级别, 纠错级别越高,生成图片会越大。
L水平 7%的字码可被修正
M水平 15%的字码可被修正
Q水平 25%的字码可被修正
H水平 30%的字码可被修正
Size表示图片每个黑点的像素。
代码的调用范例:
include "qrlib.php";
QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, $margin);
$data 数据
$filename 保存的图片名称
$errorCorrectionLevel 错误处理级别
$matrixPointSize 每个黑点的像素
$margin 图片外围的白色边框像素
*/
include "phpqrcode.php";
/*******生成2维码********/
// $value ="http://www.phpfensi.com"; // 二维码数据
// $errorCorrectionLevel = "L"; // 纠错级别:L、M、Q、H
// $matrixPointSize = "4"; // 点的大小:1到10
// QRcode::png($value, false, $errorCorrectionLevel, $matrixPointSize);
/********保存2维码图片***************/
// $data = 'http://www.phpfensi.com'; // 二维码数据
// $filename = '1111.jpg'; // 生成的文件名
// $errorCorrectionLevel = 'L'; // 纠错级别:L、M、Q、H
// $matrixPointSize = 4; // 点的大小:1到10
// QRcode::png($data, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
/***************生成中间带logo的2维码图片(先生成2维码图片,在给图片中间加水印)*************/
$logo = '12312.png'; //水印logo
$QR = 'xiangyang.png'; //2维码图片名称
$sy = 'shuiying_code.png'; //2维码图片名称
$value = 'http://www.phpfensi.com'; //2维码值
$errorCorrectionLevel = 'L'; // 纠错级别:L、M、Q、H
$matrixPointSize = 10; // 点的大小:1到10
QRcode::png($value, $QR, $errorCorrectionLevel, $matrixPointSize, 2);
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_height = imagesy($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,$sy);