<?php

namespace app\common\service;

use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;

class QrcodeService
{
    public static function getQrcode($file_name, $content, $size = 150, $margin = 20)
    {
        //创建文件夹
        $path = public_path() . '/storage/qrcode';
        if (!file_exists($path)) {
            mkdir($path);
        }

        $file_path = $path . '/' . $file_name;
        if (!file_exists($file_path)) {
            $writer = new PngWriter();
            $qrCode = QrCode::create($content)
                ->setEncoding(new Encoding('UTF-8'))
                ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
                ->setSize($size)//大小
                ->setMargin($margin)//边距
                ->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
                ->setForegroundColor(new Color(0, 0, 0))
                ->setBackgroundColor(new Color(255, 255, 255));
            $result = $writer->write($qrCode);
            $result->getString();

            $result->saveToFile($file_path);
        }

        $file_url = url('/') . '/storage/qrcode/' . $file_name;
        return $file_url;
    }
}