使用 PHP 生成二维码常用两个库, PHPQRCode 和 PHP QR Code,本文介绍 PHP QR Code。
PHP QR Code encoder 是一个用于生成QR码的开源PHP库。它可以用来在PHP应用程序中生成二维码图片。以下是详细的说明,包括如何安装、基本使用以及一些高级配置。
安装
- 下载库文件:你可以从其官方网站(https://phpqrcode.sourceforge.net/)或GitHub仓库下载PHP QR Code encoder库。通常,你会得到一个压缩包,里面包含了几个PHP文件和目录结构。
- 解压文件:将下载的文件解压到你的项目的某个目录下,比如/libs/phpqrcode/。
基本使用
假设你已经将库文件放置到了/libs/phpqrcode/目录下,下面是生成一个简单二维码的例子:
<?php // 包含必要的库文件 require_once 'libs/phpqrcode/phpqrcode.php'; // 要编码的数据 $data = 'https://www.example.com'; // 输出文件名 $filename = 'qrcode'; // 生成二维码图片 QRcode::png($data, false, 'L', 5, 2); // 第一个参数为false表示直接输出到浏览器 // 如果你想保存到文件,可以这样做: // QRcode::png($data, 'output/'.$filename.'.png', 'L', 5, 2); ?>
这段代码会在浏览器中直接输出一个指向https://www.example.com的二维码图片。如果你想将二维码保存到文件中,可以将第一个参数设置为文件的完整路径。
参数说明
- data:要编码的数据字符串。
- filename:可选参数,如果提供,则保存为文件;如果不提供(设置为false),则输出到浏览器。
- level:错误纠正级别,可以是L、M、Q或H,分别代表7%、15%、25%和30%的容错率。
- size:模块大小,默认是4,可以设置为1到10。
- margin:边距大小,默认是4,表示每个边有4个模块宽的空白区域。
更多示例
// 包含必要的库文件 require_once 'phpqrcode.php'; $value = 'https://www.baidu.com'; //二维码内容 $errorCorrectionLevel = 'H'; //容错级别 $matrixPointSize = 6; //生成图片大小 //生成二维码图片 $filename = 'output/' . microtime() . '.png'; \QRcode::png($value, $filename, $errorCorrectionLevel, $matrixPointSize, 2); $logo = 'logo.png'; //准备好的logo图片 $QR = $filename; //已经生成的原始二维码图 if (file_exists($logo)) { $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 / 4; //组合之后logo的宽度(占二维码的1/5) $scale = $logo_width / $logo_qr_width; //logo的宽度缩放比(本身宽度/组合后的宽度) $logo_qr_height = $logo_height / $scale; //组合之后logo的高度 $from_width = ($QR_width - $logo_qr_width) / 2; //组合之后logo左上角所在坐标点 //重新组合图片并调整大小 /* * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中 */ imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height); } //输出图片 imagepng($QR, 'output/qrcode1.png'); imagedestroy($QR); imagedestroy($logo); echo '< img src="output/qrcode1.png" alt="使用微信扫描支付" >';
声明:本站所有文章,如无特殊说明或标注,均为原创。