• File: QRCodeService.php
  • Full Path: /var/www/imaliapitest/app/Classes/QRCodeService.php
  • Date Modified: 05/19/2025 4:29 PM
  • File size: 1.36 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?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));
    }
}