asp.net mvc 3.0 动态无损图片压缩,及路由定义
2012-07-06 22:41:47 来源:WEB开发网1.定义路由
2.编写控制器
3.编写图片压缩方法
4.测试运行
---------------------------------------------------
1.定义路由 ,一般写在 Globals.cs 文件中
public static void RegisterRoutes(RouteCollection routes)
{
////~/images/XiaZhuang/649500/test.jpg
routes.MapRoute(
"Default12", // 图片路由名称
"{controller}/{action}/{width}/{height}/{root}/{type}/{pid}/{imgName}/", // 带有参数的 URL
new { controller = "EBMS", action = "Index", id = UrlParameter.Optional }, // 参数默认值
new string[] { "EB.Ctrl.Controllers" });
}
2.编写控制器
public class ImagesController : Controller
{
/// <summary>
/// 图片压缩处理
/// </summary>
/// <param name="width">宽度</param>
/// <param name="height">高度</param>
/// <param name="root">根节目录</param>
/// <param name="type">类型</param>
/// <param name="pid">商品ID</param>
/// <param name="imgName">图片名称</param>
/// <returns></returns>
public string Ebms(string width,string height,string root,string type,string pid,string imgName)
{
string sourceFile = string.Format("~/{0}/{1}/{2}/{3}"
, root
, type
, pid
, imgName);
sourceFile = Server.MapPath(sourceFile);
if (!System.IO.File.Exists(sourceFile))
return string.Format("图片路径无效:{0}",sourceFile);
EB.Sys.Images.ImgThumbnail.Thumbnail(
sourceFile
, Response.OutputStream
, width.GetInt()
, height.GetInt()
, 90
, Sys.Images.ImgThumbnail.ImgThumbnailType.W);
//测试输出流中是否存在内容
//byte[] arr = new byte[1000];
//Response.OutputStream.Write(arr,0,arr.Length);
return string.Empty;
}
}
3.编写图片压缩方法
这个方法在我另外一篇文章中有介绍,这里做了个加工
http://blog.csdn.net/xxj_jing/article/details/7715729
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
namespace EB.Sys.Images
{
/// <summary>
/// 图片压缩
/// </summary>
public class ImgThumbnail
{
/// <summary>
/// 指定缩放类型
/// </summary>
public enum ImgThumbnailType
{
/// <summary>
/// 指定高宽缩放(可能变形)
/// </summary>
WH = 0,
/// <summary>
/// 指定宽,高按比例
/// </summary>
W = 1,
/// <summary>
/// 指定高,宽按比例
/// </summary>
H = 2,
/// <summary>
/// 指定高宽裁减(不变形)
/// </summary>
Cut = 3
}
#region Thumbnail
/// <summary>
/// 无损压缩图片
/// </summary>
/// <param name="sourceFile">原图片</param>
/// <param name="stream">压缩后保存到流中</param>
- ››asp.net页面弄成伪静态页面
- ››Asp.net 中将汉字转换成拼音的方法
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
更多精彩
赞助商链接