(1)下载类库文件
php类库PHP QR Code,地址:
http://phpqrcode.sourceforge.net/
https://sourceforge.net/projects/phpqrcode/
(2)放到项目里
把下载的文件解压后有个phpqrcode.php文件,复制放到项目里
public function eweima(){
include_once('../app/Extensions/phpqrcode/phpqrcode.php');
//保存的路径
$file_path = '../uploads/tmp/';
//二维码的内容
$url = 'https://myok.top';
//容错级别
$errorCorrentionLevel = 'L';
//生成图片大小
$matrixPoinSize = 6;
//生成二维码
$filename = '';
\QRcode::png($url,$file_path.'qrcode.png',$errorCorrentionLevel,$matrixPoinSize,2);
//上传保存
$uploads = new UploadsController();
$uploads->uploadsiImgMobile($filename);
}
用PHP二维码生成类库QRcode,很好用,简单快捷!
//引入核心库文件
include "phpqrcode/phpqrcode.php";
//定义纠错级别
$errorLevel = "L";
//定义生成图片宽度和高度;默认为3
$size = "4";
//定义生成内容
// $content="尝试一下内容测试";
// //调用QRcode类的静态方法png生成二维码图片//
// QRcode::png($content, false, $errorLevel, $size);
//生成网址类型
$url="http://www.lpcblog.com/";
QRcode::png($url, false, $errorLevel, $size);
一、加入LOGO的代码示例
/**
* Created by PhpStorm.
* phpqrcode.php提供了一个关键的png()方法,
* @param $text 生成二位的的信息文本;
* @param $outfile 是否输出二维码图片 文件,默认否;
* @param $level 容错率,也就是有被覆盖的区域还能识别,分别是 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 是否保存二维码并 显示。
*/
//本地文档相对路径
$url = '../public/images/';
//引入php QR库文件
include_once('../public/phpqrcode/phpqrcode.php');
$value = 'https://imlyq.top';
$errorCorrentionLevel = 'L'; //容错级别
$matrixPoinSize = 6; //生成图片大小
//生成二维码,第二个参数为二维码保存路径
QRcode::png($value,$url.'qrcode.png',$errorCorrentionLevel,$matrixPoinSize,2);
//如不加logo,下面logo code 注释掉,输出$url.qrcode.png即可。
$logo =$url.'logo.png'; //logo
$QR = $url.'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);
}
//新图片
$img = $url.'helloweba.png';
//输出图片
imagepng($QR, $img);
echo "<img src=$img />";
?>
二、加入文字的代码示例:
//首先我们应该注意的一点是要使用到ttf字体,ttf字体是一样的,可以直接在windows复制到linux使用(c:window/font)
include 'phpqrcode.php';
$url = 'http://www.caizhichao.cn'; //二维码内容
$errorCorrectionLevel = 'H'; //容错级别
$matrixPointSize = 5; //生成图片大小
ob_start();
$QRcode::png($url, false, $errorCorrectionLevel, $matrixPointSize, 1);
$ob_contents = ob_get_contents(); //读取缓存区数据
ob_end_clean();
$myImage = ImageCreate(245,245); //参数为宽度和高度
$qr = imagecreatefromstring($ob_contents);
$qr_size = imagesx($qr);
$img_x_y = (245-$qr_size)/2; //245为宽度
$white = ImageColorAllocate($myImage, 255, 255, 255);
$green=ImageColorAllocate($myImage, 44, 195, 179);
$font_path = ROOT_PATH.'/public/static/fonts/msyhbd.ttf'; //引入字体
imagettftext($myImage, 10, 0, 38, 20, $green, $font_path, '这里是写要显示在二维码中的文字');
imagecopyresampled($myImage, $qr, $img_x_y, $img_x_y, 0, 0, $qr_size, $qr_size, $qr_size, $qr_size); //重新组合图片并调整大小
Header("Content-type: image/png");
imagepng($myImage , 'qr_txt.png'); //带文字二维码的文件名