我想制作qrcode,在那里我可以做到但是当我想将qrcode的格式更改为png文件时我遇到了麻烦。但它唯一的展示符号
在这里我的观点:
<?php echo QrCode::size(265)->generate($row->id) ?>
我使用的qrcode:
"simplesoftwareio/simple-qrcode": "~1"
这里是我的回复:https://www.simplesoftware.io/docs/simple-qrcode
谁能帮助我吗?或者有人能给我解决方案吗? 在我将格式更改为png之前:答案 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()。