huanghb 5 months ago
parent
commit
b82ea2aa40

+ 16 - 30
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Controllers/InitController.cs

@@ -173,34 +173,7 @@ namespace IES.ExamServer.Controllers
             return Ok(new { code = code });
         }
         /*
-         public void AddLogoToImage(string originalImagePath, string logoImagePath, string outputPath)
-{
-    // 加载原始图片和logo图片 这段代码假设logo图片小于原始图片,如果logo较大,需要调整logo的大小或位置以确保它不会超出原始图片边界。
-    using (var originalBitmap = SKBitmap.Decode(originalImagePath))
-    using (var logoBitmap = SKBitmap.Decode(logoImagePath))
-    using (var surface = SKSurface.Create(originalBitmap.Info, originalBitmap.Pixels))
-    {
-        // 创建画布
-        var canvas = surface.Canvas;
- 
-        // 绘制原始图片
-        canvas.DrawBitmap(originalBitmap, 0, 0);
- 
-        // 计算logo位置
-        float logoX = (originalBitmap.Width - logoBitmap.Width) / 2;
-        float logoY = (originalBitmap.Height - logoBitmap.Height) / 2;
- 
-        // 绘制logo到画布
-        canvas.DrawBitmap(logoBitmap, logoX, logoY);
- 
-        // 保存最终图片
-        using (var image = surface.Snapshot())
-        using (var output = File.Create(outputPath))
-        {
-            image.Encode(SKEncodedImageFormat.Png, 100).SaveTo(output);
-        }
-    }
-}
+     
          
          
          */
@@ -208,7 +181,7 @@ namespace IES.ExamServer.Controllers
         /// 登录模式初始化
         /// </summary>
         /// <returns></returns>
-        [HttpGet("/login-init")]
+        [HttpPost("login-init")]
         public async Task<IActionResult> LoginInit(JsonNode json)
         {
             var type = json["type"];
@@ -216,9 +189,22 @@ namespace IES.ExamServer.Controllers
             string randomCode = "";
             switch (true)
             {
+                case bool when $"{type}".Equals("skiaqrcode"):
+                    {
+                        //.NET Core使用SkiaSharp快速生成二维码  https://cloud.tencent.com/developer/article/2336486
+
+                        // 生成二维码图片
+                        Random random = new Random();
+                        randomCode = $"{random.Next(1000, 9999)}";
+                        string? CenterUrl = _configuration.GetValue<string>("ExamServer:CenterUrl");
+                        string content = $"{CenterUrl}/joinSchool?schoolCode=login:{randomCode}&m=%E7%99%BB%E5%BD%95&o=1";
+                        var  str= QRCodeHelper.GenerateQRCode(content, 200, 200);
+                        qrcode = $"data:image/png;base64,{str}";
+                        return Ok(new { code = 200, randomCode = randomCode, qrcode, type });
+                    }
                 case bool when $"{type}".Equals("qrcode"):
                     {
-                        // 生成二维码图片.NET Core使用SkiaSharp快速生成二维码  https://cloud.tencent.com/developer/article/2336486
+                        // 生成二维码图片
                         Random random = new Random();
                         randomCode = $"{random.Next(1000, 9999)}";
                         string? CenterUrl = _configuration.GetValue<string>("ExamServer:CenterUrl");

File diff suppressed because it is too large
+ 82 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/Helpers/QRCodeHelper.cs


+ 1 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamServer/IES.ExamServer.csproj

@@ -32,6 +32,7 @@
 	</ItemGroup>
 	<ItemGroup>
 		<PackageReference Include="LiteDB" Version="5.0.21" />
+		<PackageReference Include="SkiaSharp.QrCode" Version="0.7.0" />
 		<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.3.0" />
 		<PackageReference Include="VueCliMiddleware" Version="6.0.0" />
 		<PackageReference Include="ZXing.Net.Bindings.ZKWeb.System.Drawing" Version="0.16.7" />