laravel 中的二维码

Qrcode in laravel

我想制作二维码,在那里我可以制作但是当我想将二维码的格式更改为png文件时遇到了一些麻烦。但它只显示符号

这是我的看法:

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

我用的这个二维码:

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

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

谁能帮帮我?或者有人可以给我解决方案吗? 在我将格式更改为 png 之前:

这是我更改后的:

如果您将其格式化为 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 . "'>";

还有更简单的示例可用。

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

在控制器中

$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);

在blade文件中

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

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

我使用上面的示例将 QR 码创建为 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 变量是在每个 blade 中作为电子邮件在 laravel 中发送的变量。在我的例子中,我不想在服务器上创建一个实际的图像,但是如果你想使用你存储的图像,你可以使用 $message->embed().