Example #1
0
        /// <summary>
        /// 显示验证码
        /// </summary>
        /// <param name="key"></param>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <returns></returns>
        private Result ShowCode(string key, int width, int height)
        {
            string random = WebAgent.GetRandom(0, 9999).ToString().PadLeft(4, '0');

            MemoryUtils.Set(key, random, TimeSpan.FromMinutes(5));
            using (Bitmap bitmap = new Bitmap(width, height))
            {
                Bitmap    bg        = (Bitmap) new ResourceManager(typeof(Resources)).GetObject("validcode_bg");
                Rectangle rectangle = new Rectangle(WebAgent.GetRandom(0, bg.Width - width),
                                                    WebAgent.GetRandom(0, bg.Height - height),
                                                    width, height);

                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    g.Clear(Color.White);
                    g.DrawImage(bg, new Rectangle(0, 0, width, height),
                                rectangle, GraphicsUnit.Pixel);
                    for (int i = 0; i < random.Length; i++)
                    {
                        Bitmap    code          = (Bitmap) new ResourceManager(typeof(Resources)).GetObject($"validcode_{random[i]}");
                        Rectangle codeRectangle = new Rectangle(width / random.Length * i + WebAgent.GetRandom(-5, 5), WebAgent.GetRandom(-5, 5), width / 4, height);
                        g.DrawImage(code, codeRectangle,
                                    new Rectangle(0, 0, code.Width, code.Height),
                                    GraphicsUnit.Pixel);
                    }
                }

                using (MemoryStream ms = new MemoryStream())
                {
                    bitmap.Save(ms, ImageFormat.Png);
                    return(new Result(ContentType.PNG, ms.ToArray()));
                }
            }
        }
Example #2
0
        static TranslateUtils()
        {
            APIURL = new ConfigurationBuilder()
                     .AddJsonFile("appsettings.json")
                     .Build()["studio:language"];

            if (string.IsNullOrEmpty(APIURL))
            {
                return;
            }

            Console.WriteLine("触发翻译器静态构造");

            Timer timer = new Timer(60 * 1000)
            {
                Enabled = true
            };

            timer.Elapsed += (sender, e) =>
            {
                if (UPDATETIME != GetDataTime())
                {
                    Console.WriteLine("语言包存在更新");
                    MemoryUtils.Set(KEY, GetAPIData(), TimeSpan.FromDays(7));
                }
            };
            timer.Start();
        }