找了很久,网上资料不全,版本也各不相同,有的版本安装了不能使用icon,有的教程需要自己去下载包然后include,直接用simple-qrcode涉及到png处理还需要安装php依赖imagick,记录一下方便以后使用。
添加依赖
composer.json文件添加一行
"endroid/qr-code": "^2.5"
执行安装
composer update
使用
use Endroid\QrCode\QrCode;
public function qrcode($content, $icon){
$path = sys_get_temp_dir().'\qrcode_'. microtime(true)*10000 .'.png';
$qrCode = new QrCode($content);
$qrCode->setSize(300); // 设置二维码大小
$qrCode->setWriterByName('png'); // 设置格式
$qrCode->setLogoPath($icon); // 中间图片的路径
$qrCode->setLogoWidth(60); // 中间图片的大小
$qrCode->writeFile($path); // 导出
return $path;
}
需要注意 logo的大小不能太大,否则遮挡区域太多无法识别
其他方法
设置二维码内容 setText
设置二维码尺寸 setSize
设置二维码边界 setPadding
设置文字 setLabel
设置文字字体 setLabelFontPath
设置文字大小 setLabelFontSize
直接输出 writeString