laravel中的Qrcode

时间:2016-06-15 03:46:29

标签: laravel laravel-5 laravel-5.1 laravel-5.2 qr-code

我想制作qrcode,在那里我可以做到但是当我想将qrcode的格式更改为png文件时我遇到了麻烦。但它唯一的展示符号

在这里我的观点:

<?php echo QrCode::size(265)->generate($row->id) ?>

我使用的qrcode:

"simplesoftwareio/simple-qrcode": "~1"

这里是我的回复:https://www.simplesoftware.io/docs/simple-qrcode

谁能帮助我吗?或者有人能给我解决方案吗? 在我将格式更改为png之前: this before i change format

这是我改变它之后: after i change it

4 个答案:

答案 0 :(得分:6)

如果您将其格式化为png文件格式,则需要将其包含在<img>标记中。

取自文件

//Inside of a blade template.
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">

你也可以这样做:

$png = QrCode::format('png')->size(512)->generate(1);
$png = base64_encode($png);
echo "<img src='data:image/png;base64," . $png . "'>";

答案 1 :(得分:6)

还有更简单的例子。

<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('QrCode as PNG image!')) !!} ">

答案 2 :(得分:1)

在控制器中

$path = getenv('IMAGE_URL')."/img/logo.png";
$png = QrCode::format('png')->merge($path, .17, true)->size(300)->errorCorrection('H')->generate($data);
$png = base64_encode($png);

在刀片文件中

<img src='data:image/png;base64,{{$png}}'>

答案 3 :(得分:0)

我来到这个页面是因为我需要创建一个 PNG 文件,以便在 laravel8 中的电子邮件中内联发送。

我使用上面的示例将二维码创建为 png,效果非常好。我使用了以下代码:

<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('QrCode as PNG image!')) !!}" />

但是,许多电子邮件服务(包括 Gmail)不显示使用上述内联 base64 的图像。相反,他们要求您将 base64 图像作为附件添加到电子邮件中,然后在 img src 中引用该附件。

谢天谢地,laravel(我使用的是 laravel8)有一个非常酷的函数可以为您完成这项工作,所以我的代码最终看起来像这样(有效):

              <?php
                  $qrCodeAsPng = QrCode::format('png')->size(500)->generate("my text for the QR code");
              ?>
              <img src="{{ $message->embedData($qrCodeAsPng, 'nameForAttachment.png') }}" />

$message 变量存在于在 laravel 中作为电子邮件发送的每个刀片中。就我而言,我不想在服务器上创建实际图像,但如果您想使用已存储的图像,则可以使用 $message->embed()。