RandomImage.aspx.cs:
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; public partial class RandomImage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //輸出帶有隨機驗證碼的圖片 CreateCheckCodeImage(this.GenerateCheckCode()); } /// <summary> /// 隨機生成4位隨機字符(0-9)(A-Z) /// </summary> /// <returns></returns> private string GenerateCheckCode() { //定義驗證碼長度 int CODELENGTH = 4; int number; string RandomCode = string.Empty; Random r = new Random(); for (int i = 0; i < CODELENGTH; i++) { number = r.Next(); //字符從0-9,A-Z中隨機生成,對應的ASCII碼分別爲48-57,65-90 number %= 36; if (number < 10) { number += 48; } else { number += 55; } RandomCode += ((char)number).ToString(); } //在Cookie中保存驗證碼 //Response.Cookies.Add(new HttpCookie("CheckCode",RandomCode)); Session["CheckCode"] = RandomCode; return RandomCode; } /// <summary> /// 輸出包括4位隨機數字的圖片 /// </summary> /// <param name="CheckCode"></param> private void CreateCheckCodeImage(string CheckCode) { //若驗證碼爲空,則直接返回 if (CheckCode == null || CheckCode.Trim() == string.Empty) { return; } //根據驗證碼的長度確定輸出圖片的寬度 int iWidth = (int)Math.Ceiling(CheckCode.Length*15m); int iHeight = 20; //創建圖像 Bitmap image = new Bitmap(iWidth, iHeight); //從圖像獲取一個繪圖面 Graphics g = Graphics.FromImage(image); try { Random r = new Random(); //清空圖片背景色 g.Clear(Color.White); //畫圖片的背景噪音線10條 for (int i = 0; i < 10; i++) { int x1 = r.Next(image.Width); int x2 = r.Next(image.Width); int y1 = r.Next(image.Height); int y2 = r.Next(image.Height); //用銀色畫出噪音線 g.DrawLine(new Pen(Color.Silver), x1, x2, y1, y2); } //畫圖片的前景噪音點50個 for (int i = 0; i < 50; i++) { int x = r.Next(image.Width); int y = r.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(r.Next())); } //畫圖片的框線 g.DrawRectangle(new Pen(Color.SaddleBrown), 0, 0, image.Width - 1, image.Height - 1); //定義繪製文字的字體 Font f = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic)); //線性漸變畫刷 System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Purple, 1.2f, true); g.DrawString(CheckCode, f, brush, 2, 2); //創建內存流用於輸出圖片 using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { //圖片格式制定爲png image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); //清除緩衝區流中的所有輸出 Response.ClearContent(); //輸出流的HTTP MIME類型設置爲“image/Png” Response.ContentType = "image/Png"; //輸出圖片的二進制流 Response.BinaryWrite(ms.ToArray()); } } finally { //釋放Bitmap對象和Graphics對象 g.Dispose(); image.Dispose(); } } }
index.aspx:
<img src="RandomImage.aspx" alt="驗證碼" id="imgRandom" />
1 概述 通道是Golang提供的一種基本類型,它可以實現在協程之間的單向通信和雙向通信、發送和接收數據、以及協程同步。 channel的本質是一個隊列,遵循先進先出原則。channel是線程安全的,在任何給定時間,一個數據被設計爲只有一
作者:周靜、吳宇奇、泮聖偉 在應用開發測試驗證通過後、進行生產發佈前,爲了降低新版本發佈帶來的風險,期望能夠先部署到灰度環境,用小部分業務流量進行全鏈路灰度驗證,驗證通過後再全量發佈生產。本文主要介紹如何通過阿里雲 MSE 微服務引擎和雲效
此次踩坑過多,先做一次簡單記錄,然後再不斷完善。 問題描述: 1、先是 appium 啓動後,執行 python 代碼模塊到 session.find_element(MobileBy.IMAGE, image_test) 時,會報錯提
設計 App 畫面時,除了控制元件的上下左右位置,控制元件的階層也很重要,因為它將決定 A 元件會覆蓋元件 B 還是被 B 覆蓋,影響元件是否會被別人檔到。 在 SwiftUI 裡主要有 ZStack,overlay & backgroun
本文分享自華爲雲社區《構建大型Web應用Flask中的Blueprints指南》,作者: 檸檬味擁抱。 什麼是Blueprints? Blueprints是Flask中的一種模式,用於將應用程序分解爲可重用的模塊。每個藍圖實際上是一個包含
前言 2024西湖論劍數據安全題,太菜了當時沒看明白, 系統是phpems,修改了默認密碼,需要利用CVE登上去 CVE-2023-6654 ,菜鳥學習,大佬多指點 0x01環境搭建 https://phpems.net/index.p
1.對象的拷貝分爲兩種,第一種爲淺拷貝 let str = '張三' let str1 = str str1 = '李四' console.log(str1, str) let obj = { name: '張三' }
前言 爲啥要寫這個呢,因爲寫程序也7-8年了,有一些感悟,想寫下來,雖然這個命題有點大,但是呢,我覺得並不誇張,下面進入正題。 打好基礎 其實就是學東西不管學什麼基礎纔是重要的,比如寫程序有的人會說能用就行,可是我覺
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,採用22nm製程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.
就在昨晚,Java 22正式發佈!該版本提供了 12 項功能增強,其中包括 7 項預覽功能和 1 項孵化器功能。它們涵蓋了對 Java 語言、API、性能以及 JDK 中包含的工具的改進。 下面就來一起學習一下該版本都更新了哪些新特性! U
鴻蒙原生應用再新丁!航班管家、高鐵管家 入局鴻蒙 來自 HarmonyOS 微博3月19日消息 航班管家、高鐵管家完成鴻蒙原生應用核心版本開發,爲行業提供示範效應,進一步豐富鴻蒙生態在民航、鐵路多個出行場景領域的版圖,將爲用戶帶來更智能
什麼是JVM? JVM:Java虛擬機(英語:Java Virtual Machine,縮寫:JVM),一種能夠執行Java字節碼的虛擬機,以堆棧結構機器來實現。最早由Sun微系統所研發並實現第一個實現版本,是Java平臺
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,採用22nm製程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB
DHTMLX Gantt是用於跨瀏覽器和跨平臺應用程序的功能齊全的Gantt圖表。可滿足項目管理應用程序的所有需求,是最完善的甘特圖圖表庫。 當您聲稱您的產品具有高級定製功能時,客戶一定會對產品進行嚴格測試,這個規則當然適用於DHTMLX
什麼是Java agent技術? Java代理(Java agent)是一種Java技術,它允許開發人員在運行時以某種方式修改或增強Java應用程序的行爲。Java代理通過在Java虛擬機(JVM)啓動時以"代理"(agent)的形式加載