手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET 2.0,C#----图像特效处理
ASP.NET 2.0,C#----图像特效处理
摘要:利用.NET提供的类,如Drawing.Bitmap,Drawing.Bitmap等,很容易就可以实现对图片的简单处理。包括打水印,放大缩小...

利用.NET 提供的类,如Drawing.Bitmap ,Drawing.Bitmap 等,很容易就可以实现对图片的简单处理。包括打水印,放大缩小,等操作。

public partial class WebForm4 : System.Web.UI.Page

{

// 原始图片路径

private string path;

private System.Drawing.Bitmap bitmap;

private System.Drawing.Graphics graphics;

string Message = "<script>alert("{0}");</script>";

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

this.txtPicPath.Text = Server.MapPath("/test.jpg");

}

path = this.txtPicPath.Text.Trim();

if (!System.IO.File.Exists(path))

{

MessageShow("指定的源文件不存在!");

return;

}

}

// 打水印Logo

protected void btnLogo_Click(object sender, EventArgs e)

{

string log = txtLog.Text.Trim();

if (log.Length < 1)

{

MessageShow("请输入水印字符!");

return;

}

bitmap = new Bitmap(path);

graphics = Graphics.FromImage(bitmap);

graphics.DrawString(log, new Font("宋体", 16), System.Drawing.Brushes.GreenYellow, new PointF(bitmap.Width / 2 - (log.Length) * 5, bitmap.Height / 2));

try

{

bitmap.Save(Server.MapPath("./_Log.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成水印图片,路径为" + @Server.MapPath("./_log.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

private void MessageShow(string msg)

{

Page.ClientScript.RegisterStartupScript(Page.GetType(), "Message", string.Format(Message, msg));

}

//放大X*X倍

protected void btnBig_Click(object sender, EventArgs e)

{

int i = int.Parse(txtBig.Text.Trim());

System.Drawing.Image img = System.Drawing.Image.FromFile(path);

bitmap = new Bitmap(img.Width * i, img.Height * i);

graphics = Graphics.FromImage(bitmap);

graphics.DrawImage(img, 0, 0, img.Width * i, img.Height * i);

try

{

bitmap.Save(Server.MapPath("./_Big.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Big.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

//缩小为原始图像的1/(X*X)

protected void btnSmall_Click(object sender, EventArgs e)

{

float i = float.Parse(txtBig.Text.Trim());

System.Drawing.Image img = System.Drawing.Image.FromFile(path);

int w = Convert.ToInt32(img.Width / i);

int h = Convert.ToInt32(img.Height / i);

// 防止过度变形

if (w < 1) w = 10;

if (h < 1) h = 0;

bitmap = new Bitmap(w, h);

graphics = Graphics.FromImage(bitmap);

graphics.DrawImage(img, 0, 0, w, h);

try

{

bitmap.Save(Server.MapPath("./_Small.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Small.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

//倾斜( 右转90度)

protected void btnIncline_Click(object sender, EventArgs e)

{

System.Drawing.Image img = System.Drawing.Image.FromFile(path);

// 图像旋转,可以利用RotateFlipType的枚举值,在编程的时候,IDE会自动显示每一个枚举的意思

img.RotateFlip(RotateFlipType.Rotate90FlipXY);

bitmap = new Bitmap(img);

graphics = Graphics.FromImage(bitmap);

graphics.DrawImage(img, new Point(0, 0));

try

{

bitmap.Save(Server.MapPath("./_Incline.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Incline.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

// 图像压扁

protected void btnStave_Click(object sender, EventArgs e)

{

System.Drawing.Image img = System.Drawing.Image.FromFile(path);

// 宽度不变

int w = img.Width;

// 高度为原始高度的1/2

int h = img.Height / 2;

// 防止过度变形

if (w < 1) w = 10;

if (h < 1) h = 0;

bitmap = new Bitmap(w, h);

graphics = Graphics.FromImage(bitmap);

graphics.DrawImage(img, 0, 0, w, h);

try

{

bitmap.Save(Server.MapPath("./_Stave.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Stave.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

//图像拉宽

protected void btnElongate_Click(object sender, EventArgs e)

{

System.Drawing.Image img = System.Drawing.Image.FromFile(path);

// 放大宽度

int w = img.Width / 2;

// 高度不变

int h = img.Height;

// 防止过度变形

if (w < 1) w = 10;

if (h < 1) h = 0;

bitmap = new Bitmap(w, h);

graphics = Graphics.FromImage(bitmap);

graphics.DrawImage(img, 0, 0, w, h);

try

{

bitmap.Save(Server.MapPath("./_Elongate.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);

MessageShow("已经生成图片,路径为" + @Server.MapPath("./_Elongate.jpg").Replace("", ""));

}

catch (Exception ex)

{

MessageShow("生成图片错误!" + ex.Message);

throw;

}

graphics.Dispose();

bitmap.Dispose();

}

}

ASP.NET 2.0,C#----图像特效处理1

【ASP.NET 2.0,C#----图像特效处理】相关文章:

ASP.NET 2.0 中的创建母版页

ASP.NET列出数据库活跃链接的方法

ASP.NET上传图片并生成可带版权信息的缩略图

ASP.NET2.0数据库入门之SQL Server

ASP.NET中实现获取调用方法名

ASP.NET 页面刷新的实现方法

.Net 2.0 原汁原味读取注册表

页面包含的处理

ASP.NET 2.0中预设的cookie

调试ASP.NET应用程序的方法和技巧

精品推荐
分类导航