QrCode.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\common\util;
  3. use Endroid\QrCode\Builder\Builder;
  4. use Endroid\QrCode\Encoding\Encoding;
  5. use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelHigh;
  6. use Endroid\QrCode\Label\Alignment\LabelAlignmentCenter;
  7. use Endroid\QrCode\Label\Font\NotoSans;
  8. use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
  9. use Endroid\QrCode\Writer\PngWriter;
  10. use Endroid\QrCode\Color\Color;
  11. use Endroid\QrCode\Label\Margin\Margin;
  12. class QrCode
  13. {
  14. public static function createEwm($data): string
  15. {
  16. $code = Builder::create()
  17. ->writer(new PngWriter())
  18. ->writerOptions([])
  19. ->data($data) //文本或url地址
  20. // ->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
  21. // ->size(500) //二维码大小
  22. //
  23. // ->margin(10) //外边距
  24. //
  25. // ->foregroundColor($color) //二维码颜色
  26. //
  27. // ->backgroundColor($color1) //背景颜色
  28. //
  29. // ->logoResizeToWidth('80') //logo宽
  30. //
  31. // ->logoResizeToHeight('80') //logo高
  32. //
  33. // ->roundBlockSizeMode(new RoundBlockSizeModeMargin())
  34. // ->logoPath(__DIR__ . '/assets/symfony.png') //logo图片位置
  35. //
  36. // ->labelText('二维码') //标题文字
  37. //
  38. // ->labelMargin($mar) //标题文字的外边距
  39. //
  40. // ->labelTextColor($color3) //标题文字颜色
  41. //
  42. // ->labelBackgroundColor($color2) //标题背景颜色
  43. //
  44. // ->labelFont(new NotoSans(20))
  45. // ->labelAlignment(new LabelAlignmentCenter())
  46. ->build();
  47. // 设置页面文本类型
  48. // header('content-type:'.$code->getMimeType());
  49. // // 二维码保存位置
  50. $code->saveToFile('qrcode.png');
  51. // // 生成图像数据url
  52. return $code->getDataUri();
  53. }
  54. }