解决方案 »
- EXCEL 导入导Datagridview不要第一行为标题怎么弄?
- 用C#将文本中存放一行一行的用户名转化成Encoding形式存放到另一个文本里
- 请问在WPF中如何动态改变控件状态?
- 确保方法的参数的格式正确。将一个字符串转换为datatime时,先分析该字符串以获取的日期,然后再将每个变量放置到datetime对象中。获取此异常的常规帮助。?
- 如何在使用windowsmediaplayer这个控件的时候不把播放窗口显示出来?
- 在ASP.net中连接SQL Server
- 关于日期的处理
- C# listView 在失去焦点隐藏 怎么实现
- asp.net中用c#实现treeview时出现类型转换错误!各位能否指点12
- 把控件做成一条线怎么作?
- 有关Attribute.GetCustomAttribute 方法 (ParameterInfo, Type) 的一个问题
- 求助:关于dataGridView的排序
Graphics g = Graphics.FromImage(image);
try
{
//生成随机生成器
Random random = new Random();
//清空图片背景色
g.Clear(Color.White);
//Font font = new System.Drawing.Font("宋体", 10, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
//System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Black, Color.Black,90, true);
//g.DrawString(checkCode, font, brush, 2, 2); g.FillRectangle(new System.Drawing.SolidBrush(Color.Black), 0, 0, image.Width, 20);
g.Clear(Color.White);
g.DrawString(checkCode, new Font("宋体", 10, FontStyle.Bold), Brushes.Black, new PointF(5, 5));
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
/// <summary>
/// 生成汉字随机数
/// </summary>
/// <param name="rd">随机数对象</param>
/// <param name="intLength">随机数的个数</param>
/// <returns></returns>
public static string setRegionCodeRand(Random rd, int intLength)
{
string strRegCodeRand = "";
Encoding encGB = Encoding.GetEncoding("gb2312");
string[] strBase = new string[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
object[] objBytes = new object[intLength];
for (int i = 0; i < intLength; i++)
{
int rnd1 = rd.Next(11, 14);
string str_rnd1 = strBase[rnd1].Trim();
rd = new Random(rnd1 * unchecked((int)DateTime.Now.Ticks) + i);
int rnd2;
if (rnd1 == 13)
{
rnd2 = rd.Next(0, 7);
}
else
{
rnd2 = rd.Next(0, 16);
}
string str_rnd2 = strBase[rnd2].Trim();
rd = new Random(rnd2 * unchecked((int)DateTime.Now.Ticks) + i);
int rnd3 = rd.Next(10, 16);
string str_rnd3 = strBase[rnd3].Trim();
rd = new Random(rnd3 * unchecked((int)DateTime.Now.Ticks) + i);
int rnd4;
if (rnd3 == 10)
{
rnd4 = rd.Next(1, 16);
}
else if (rnd3 == 15)
{
rnd4 = rd.Next(0, 15);
}
else
{
rnd4 = rd.Next(0, 16);
}
string str_rnd4 = strBase[rnd4].Trim();
byte byRand1 = Convert.ToByte(str_rnd1 + str_rnd2, 16);
byte byRand2 = Convert.ToByte(str_rnd3 + str_rnd4, 16);
byte[] byRands = new byte[] { byRand1, byRand2 };
objBytes.SetValue(byRands, i);
}
string[] strRegCode = new string[intLength];
for (int j = 0; j < intLength; j++)
{
strRegCode[j] = encGB.GetString((byte[])Convert.ChangeType(objBytes[j], typeof(byte[])));
strRegCodeRand += strRegCode[j].Trim();
}
return strRegCodeRand;
}
#endregionpublic static void strRandMap(string saveImagePath)
{
//建立位图对象
Bitmap bitmap = new Bitmap(90, 30, PixelFormat.Format48bppRgb);
//根据上面创建的位图对象创建绘图面
Graphics graphics = Graphics.FromImage(bitmap);
//以指定的颜色填充矩形区
graphics.FillRectangle(new SolidBrush(Color.Red), new Rectangle(0, 0, 90, 30));
//创建字体对象
Font txtFont = new Font("gb2312", 12, FontStyle.Bold);
//创建RectangleF结构指定一个区域
RectangleF rectangleF = new RectangleF(0, 0, 90, 30);
//创建随机数对象
Random random = new Random();
//获取随机数
string strRand = setRegionCodeRand(random, 6);
//string strRand = setRegionCodeRand(random, 4);
//使用指定的颜色填充上面RectangleF结构指定的矩形区域
graphics.FillRectangle(new SolidBrush(Color.BurlyWood), rectangleF);
StringFormat sformat = new StringFormat();
sformat.Alignment = StringAlignment.Center;
sformat.LineAlignment = StringAlignment.Center;
//在上面填充的矩形区域中填充上面生成的随机数
graphics.DrawString(strRand, txtFont, new SolidBrush(Color.Blue), rectangleF, sformat); //把创建的位图保存到指定的路径
bitmap.Save(HttpContext.Current.Server.MapPath("") + saveImagePath, ImageFormat.Gif);
}