Laravel生成带icon的二维码

/ 0评 / 0

找了很久,网上资料不全,版本也各不相同,有的版本安装了不能使用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

发表评论

您的电子邮箱地址不会被公开。