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().
我想制作二维码,在那里我可以制作但是当我想将二维码的格式更改为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().