QRCodeController.cs 977 B

1234567891011121314151617181920212223242526272829
  1. using System.Drawing;
  2. using System.Text;
  3. using Microsoft.AspNetCore.Mvc;
  4. using QRCoder;
  5. namespace WebApplicationSample.Controllers
  6. {
  7. [Route("api/[controller]")]
  8. [ApiController]
  9. public class QRCodeController : ControllerBase
  10. {
  11. /// <summary>
  12. /// 生成二维码SVG
  13. /// </summary>
  14. /// <param name="data">数据</param>
  15. /// <param name="size">尺寸</param>
  16. [HttpGet]
  17. public IActionResult GetQRCode(string data, int size = 180)
  18. {
  19. using (var qrGenerator = new QRCodeGenerator())
  20. using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
  21. using (var svgQrCode = new SvgQRCode(qrCodeData))
  22. {
  23. var svgText = svgQrCode.GetGraphic(new Size(size, size), false, SvgQRCode.SizingMode.WidthHeightAttribute);
  24. return File(Encoding.UTF8.GetBytes(svgText), "image/svg+xml");
  25. }
  26. }
  27. }
  28. }