//画布
Bitmap bmp = new Bitmap(170, 100);
Graphics g = Graphics.FromImage(bmp);
//g.Clear(Color.Transparent);//背景色
//字体
Font newFont = new Font("宋体", 36);
//画笔
SolidBrush colorBrush = new SolidBrush(Color.Black);//字为黑色的、保存后背景也就变黑了
//内容(名字)
string text = "嘿嘿";
//绘画
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
//清除该页输出缓存,设置该页无缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
//将验证码图片写入内存流,并将其以 "image/png" 格式输出
MemoryStream ms = new MemoryStream();
try
{
bmp.Save(ms, ImageFormat.Png);
Response.ClearContent();
Response.ContentType = "image/png";
Response.BinaryWrite(ms.ToArray());
}
finally
{
//显式释放资源
bmp.Dispose();
g.Dispose();
}
Bitmap bmp = new Bitmap(170, 100);
Graphics g = Graphics.FromImage(bmp);
//g.Clear(Color.Transparent);//背景色
//字体
Font newFont = new Font("宋体", 36);
//画笔
SolidBrush colorBrush = new SolidBrush(Color.Black);//字为黑色的、保存后背景也就变黑了
//内容(名字)
string text = "嘿嘿";
//绘画
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
//清除该页输出缓存,设置该页无缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
//将验证码图片写入内存流,并将其以 "image/png" 格式输出
MemoryStream ms = new MemoryStream();
try
{
bmp.Save(ms, ImageFormat.Png);
Response.ClearContent();
Response.ContentType = "image/png";
Response.BinaryWrite(ms.ToArray());
}
finally
{
//显式释放资源
bmp.Dispose();
g.Dispose();
}
二保存图片后背景怎么能做到还是透明的。
Bitmap bmp = new Bitmap(170, 100);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);//背景色
//字体
Font newFont = new Font("宋体", 36);
//画笔
SolidBrush colorBrush = new SolidBrush(Color.Black);//字为黑色的、保存后背景也就变黑了
//内容(名字)
string text = "嘿嘿";
//绘画
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
//清除该页输出缓存,设置该页无缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
//将验证码图片写入内存流,并将其以 "image/png" 格式输出
MemoryStream ms = new MemoryStream();
try
{
bmp.Save(ms, ImageFormat.Png);
Response.Clear();
Response.ContentType = "image/png";
Response.BinaryWrite(ms.ToArray());
}
finally
{
//显式释放资源
bmp.Dispose();
g.Dispose(); }
注释后、保存的就是黑色。
Bitmap bmp = new Bitmap(170, 100); Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Gray);//背景色
//字体 Font newFont = new Font("宋体", 36);
//画笔
SolidBrush colorBrush = new SolidBrush(Color.Black);//字为黑色的、保存后背景也就变黑了
//内容(名字)
string text = "嘿嘿";
//绘画
g.DrawString(text, newFont, colorBrush, new PointF(0, 30));
//清除该页输出缓存,设置该页无缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
//将验证码图片写入内存流,并将其以 "image/png" 格式输出
bmp.MakeTransparent(System.Drawing.Color.Gray);
MemoryStream ms = new MemoryStream();
try
{
bmp.Save(ms, ImageFormat.Png); Response.ClearContent();
Response.ContentType = "image/png"; Response.BinaryWrite(ms.ToArray());
}
finally
{
//显式释放资源
bmp.Dispose();
g.Dispose(); }
g.Clear(Color.Gray);//背景色bmp.MakeTransparent(System.Drawing.Color.Gray);
可是我是先输出到浏览器、要是用户要保存就保存、不保存就没了。
只是用户想保存的时候、浏览器看着是透明背景的、保存后背景是黑色的了。
firfox就可以保存png。