欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP.NET 2.0,C#----图像特效处理】,下面是详细的讲解!
ASP.NET 2.0,C#----图像特效处理
利用.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#----图像特效处理的用户互动如下:
相关问题:
答: >>详细
相关问题:
答: >>详细
相关问题:
答: >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【ASP】ASP.NET中内嵌页面代码的一个问题-NET-内
- 【As】Asp.net中的页面乱码的问题-sp--pn-ne-et
- 【增加记录】asp.net中获取新增加记录的ID Access
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【Asp】Asp.net 页面调用javascript变量的值-net-
- 【ASP】ASP.NET 5升级后如何删除旧版本的DNX-NET5
- 【404页面】ASP.NET设置404页面返回302HTTP状态码
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
