using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using SkiaSharp; using System.IO; public class CaptchaService { public string generatedCaptchaCode; public int wrp = 0; // 生成验证码图像并返回Base64字符串 public (string captchaImage, string captchaCode) GenerateCaptcha() { string wp = "123"; try { string generatedCaptchaCode = GenerateRandomCode(4); // 生成4位随机字符 int width = 100, height = 40; using (var bitmap = new SKBitmap(width, height)) { wp = "111"; using (var canvas = new SKCanvas(bitmap)) { wp = "333"; canvas.Clear(SKColors.White); using (var paint = new SKPaint()) { paint.Color = SKColors.Black; paint.TextSize = 20; paint.IsAntialias = true; canvas.DrawText(generatedCaptchaCode, 10, 30, paint); } } wp = "222"; using (var image = SKImage.FromBitmap(bitmap)) using (var data = image.Encode(SKEncodedImageFormat.Png, 100)) using (var ms = new MemoryStream()) { data.SaveTo(ms); string base64Image = Convert.ToBase64String(ms.ToArray()); return (base64Image, generatedCaptchaCode); } } } catch (Exception ex) { Console.WriteLine($"Error generating captcha: {ex.Message}"); return (ex.Message, wp); } } // 生成随机字符 private string GenerateRandomCode(int length) { const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ012345689"; Random random = new Random(); return new string(Enumerable.Repeat(chars, length) .Select(s => s[random.Next(s.Length)]).ToArray()); } }