<?php
namespace App\Classes;
use SimpleSoftwareIO\QrCode\Facades\QrCode;
use Intervention\Image\Facades\Image;
class QRCodeService
{
/**
* Gera um QR Code com logo no centro.
*/
public static function generateQRCodeWithLogo(string $data, string $logoPath): string
{
// Gerar o QR Code e salvar temporariamente
$qrCodePath = storage_path('app/qrcode.png');
return QrCode::format('png')
->size(400) // Tamanho do QR Code
->margin(2) // Margem para melhor leitura
->merge($logoPath, 0.15, true)
->generate($data, $qrCodePath);
// Abrir a imagem do QR Code
// $qrImage = Image::make($qrCodePath);
// // Abrir a logo
// $logo = Image::make($logoPath);
// // Ajustar o tamanho da logo (máx. 20% do QR Code)
// $logoSize = $qrImage->width() * 0.2; // 20% do tamanho do QR Code
// $logo->resize($logoSize, $logoSize);
// // Inserir a logo no centro do QR Code
// $qrImage->insert($logo, 'center');
// Salvar a imagem final com a logo
// $outputPath = storage_path('images/logo/imali_logo_new25.png');
// return $qrImage->save($outputPath);
// Retornar a imagem em base64 para exibição direta
return 'data:image/png;base64,' . base64_encode(file_get_contents($outputPath));
}
}