HomeController.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Diagnostics;
  2. using System.Drawing;
  3. using System.Text;
  4. using Microsoft.AspNetCore.Mvc;
  5. using QRCoder;
  6. using WebApplicationSample_V3_0.Models;
  7. namespace WebApplicationSample_V3_0.Controllers
  8. {
  9. public class HomeController : Controller
  10. {
  11. /// <summary>
  12. /// 前言
  13. /// </summary>
  14. /// <returns></returns>
  15. public IActionResult Index()
  16. {
  17. return View();
  18. }
  19. /// <summary>
  20. /// 打赏
  21. /// </summary>
  22. /// <returns></returns>
  23. public IActionResult Gratuity()
  24. {
  25. return View();
  26. }
  27. /// <summary>
  28. /// 生成二维码SVG
  29. /// </summary>
  30. /// <param name="data"></param>
  31. /// <param name="size"></param>
  32. /// <returns></returns>
  33. [HttpGet]
  34. public IActionResult QrCode(string data, int size = 168)
  35. {
  36. using (var qrGenerator = new QRCodeGenerator())
  37. using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
  38. using (var svgQrCode = new SvgQRCode(qrCodeData))
  39. {
  40. var svgText = svgQrCode.GetGraphic(new Size(size, size));
  41. return File(Encoding.UTF8.GetBytes(svgText), "text/xml");
  42. }
  43. }
  44. public IActionResult Error()
  45. {
  46. return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
  47. }
  48. }
  49. }