QrcodeService.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace app\common\service;
  3. use Endroid\QrCode\Color\Color;
  4. use Endroid\QrCode\Encoding\Encoding;
  5. use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
  6. use Endroid\QrCode\QrCode;
  7. use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
  8. use Endroid\QrCode\Writer\PngWriter;
  9. class QrcodeService
  10. {
  11. public static function getQrcode($file_name, $content, $size = 150, $margin = 20)
  12. {
  13. //创建文件夹
  14. $path = public_path() . '/storage/qrcode';
  15. if (!file_exists($path)) {
  16. mkdir($path);
  17. }
  18. $file_path = $path . '/' . $file_name;
  19. if (!file_exists($file_path)) {
  20. $writer = new PngWriter();
  21. $qrCode = QrCode::create($content)
  22. ->setEncoding(new Encoding('UTF-8'))
  23. ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())
  24. ->setSize($size)//大小
  25. ->setMargin($margin)//边距
  26. ->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())
  27. ->setForegroundColor(new Color(0, 0, 0))
  28. ->setBackgroundColor(new Color(255, 255, 255));
  29. $result = $writer->write($qrCode);
  30. $result->getString();
  31. $result->saveToFile($file_path);
  32. }
  33. $file_url = url('/') . '/storage/qrcode/' . $file_name;
  34. return $file_url;
  35. }
  36. }