Browse Source

[WebApplicationSample] 改用 PngByteQRCode

Roc 3 years ago
parent
commit
f076f8c76d

+ 5 - 15
samples/WebApplicationSample/Controllers/QRCodeController.cs

@@ -1,7 +1,4 @@
-using System.Drawing;
-using System.Text;
-using Microsoft.AspNetCore.Mvc;
-using Microsoft.Extensions.Logging;
+using Microsoft.AspNetCore.Mvc;
 using QRCoder;
 
 namespace WebApplicationSample.Controllers
@@ -10,27 +7,20 @@ namespace WebApplicationSample.Controllers
     [ApiController]
     public class QRCodeController : ControllerBase
     {
-        private readonly ILogger<QRCodeController> _logger;
-
-        public QRCodeController(ILogger<QRCodeController> logger)
-        {
-            _logger = logger;
-        }
-
         /// <summary>
         /// 生成二维码SVG
         /// </summary>
         /// <param name="data">数据</param>
         /// <param name="size">尺寸</param>
         [HttpGet]
-        public IActionResult GetQRCode(string data, int size = 180)
+        public IActionResult GetQRCode(string data)
         {
             using (var qrGenerator = new QRCodeGenerator())
             using (var qrCodeData = qrGenerator.CreateQrCode(data, QRCodeGenerator.ECCLevel.L))
-            using (var svgQrCode = new SvgQRCode(qrCodeData))
+            using (var pngByteQrCode = new PngByteQRCode(qrCodeData))
             {
-                var svgText = svgQrCode.GetGraphic(new Size(size, size), false, SvgQRCode.SizingMode.WidthHeightAttribute);
-                return File(Encoding.UTF8.GetBytes(svgText), "image/svg+xml");
+                var pngBytes = pngByteQrCode.GetGraphic(20, false);
+                return File(pngBytes, "image/png");
             }
         }
     }

+ 1 - 1
samples/WebApplicationSample/Views/Alipay/PreCreate.cshtml

@@ -41,7 +41,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/png" width="180" height="180" />
                 }
             </div>
             <div class="form-group">

+ 1 - 1
samples/WebApplicationSample/Views/WeChatPay/QrCodePay.cshtml

@@ -49,7 +49,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/png" width="180" height="180" />
                 }
             </div>
             <div class="form-group">

+ 1 - 1
samples/WebApplicationSample/Views/WeChatPayV3/QrCodePay.cshtml

@@ -37,7 +37,7 @@
                 <label>QrCode:</label>
                 @if (!string.IsNullOrEmpty(ViewData["qrcode"] as string))
                 {
-                    <embed src="/api/qrcode?data=@ViewData["qrcode"]&size=180" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/svg+xml" />
+                    <embed src="/api/qrcode?data=@ViewData["qrcode"]" class="shadow-sm p-3 mb-5 bg-white rounded mx-auto d-block" type="image/png" width="180" height="180" />
                 }
             </div>
             <div class="form-group">

+ 1 - 1
samples/WebApplicationSample/WebApplicationSample.csproj

@@ -1,7 +1,7 @@
 <Project Sdk="Microsoft.NET.Sdk.Web">
 
   <PropertyGroup>
-    <TargetFramework>net6.0-windows</TargetFramework>
+    <TargetFramework>net6.0</TargetFramework>
     <UserSecretsId>a59ca38e-9b52-44fe-b3d2-8cb5a1641623</UserSecretsId>
     <SignAssembly>false</SignAssembly>
     <GenerateDocumentationFile>false</GenerateDocumentationFile>