Asp.Net 高清图片缩略图生成
来源:互联网 发布:不想找女朋友知乎 编辑:程序博客网 时间:2024/05/16 19:14
核心代码:
/// <summary> /// 图片上传 生成缩略图 /// </summary> /// <param name="files">文件上传控件</param> /// <param name="path">文件夹名称</param> /// <param name="fname">文件名称</param> /// <param name="w">缩略图宽度</param> /// <param name="h">缩略图高度</param> public static void UploadImageThumbs(HttpPostedFile files, string filePath, string fname, int w, int h) { if (UtilsFile.IsOrNoFileUp(files) && fname.Equals(String.Empty) == false) { UtilsFile.DirectorysCreate(filePath); Image image = Image.FromStream(files.InputStream, true); //等比例缩放 if (w > 0 && h > 0) { if (image.Width > image.Height) { if (image.Width > w) h = (int)(image.Height * ((decimal)w / image.Width)); else { h = image.Height; w = image.Width; } } else { if (image.Height > h) w = (int)(image.Width * ((decimal)h / image.Height)); else { h = image.Height; w = image.Width; } } } else if (w > 0 && h == 0) { if (image.Width < w) w = image.Width; h = (int)(image.Height * ((decimal)w / image.Width)); } else if (w == 0 && h > 0) { if (image.Height < h) h = image.Height; w = (int)(image.Width * ((decimal)h / image.Height)); } else { w = image.Width; h = image.Height; } Bitmap ret = new Bitmap(w, h); using (Graphics g = Graphics.FromImage(ret)) { g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.FillRectangle(Brushes.White, 0, 0, w, h); g.DrawImage(image, 0, 0, w, h); EncoderParameters parms = new EncoderParameters(); long[] quality = new long[1]; quality[0] = 80; EncoderParameter parm = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); parms.Param[0] = parm; ImageCodecInfo[] arr = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ar = null; for (int x = 0; x < arr.Length; x++) { if (arr[x].FormatDescription.Equals("JPEG")) { ar = arr[x]; break; } } ret.Save(filePath + fname, ar, parms); ret.Dispose(); image.Dispose(); } } }
总结:以上生成缩略图代码,效果是比较好的,就是有时候红色的点会失真,比较无解。不过这问题基本可以忽略不计。较真的朋友,如有较好的生成代码,可以共享。
原谅转载:http://www.dyxue.com/tech/id2498.html
0 0
- Asp.Net 高清图片缩略图生成
- Asp.net 生成高清缩略图
- .net生成高清缩略图备忘
- asp.net显示高清缩略图
- asp.net显示高清缩略图
- Asp.Net 上传图片并生成高清晰缩略图
- ASP.Net 上传图片并生成高清晰缩略图
- ASP.Net 上传图片并生成高清晰缩略图
- 图片文件上传, 生成高质量缩略图 (asp.net c#)
- ASP.Net 上传图片并生成高清晰缩略图
- ASP.Net 上传图片并生成高清晰缩略图
- Asp.Net 上传图片并生成高清晰缩略图
- Asp.Net 上传图片并生成高清晰缩略图
- Asp.Net 上传图片并生成高清晰缩略图
- Asp.Net 上传图片并生成高清晰缩略图
- asp.net 等比例 生成 高清图片
- ASP.NET 通过FTP跨域上传文件+生成高清缩略图。
- Java 实现生成图片缩略图,缩小高清图片
- Android简易微博
- 插入排序-直接插入排序
- 【索引】Backtracking - Easy
- Qt编译PostgreSQL数据库驱动
- COBOL学习
- Asp.Net 高清图片缩略图生成
- Union union all 显示
- 利用Java进行MySql数据库的导入和导出
- POJ3352-Road Construction
- php $this->的理解
- 【转载】C++笔试题精选(一)
- Codeforces Round #262 (Div. 2)
- JAVA获取某段时间内的所有日期
- 插入排序-希尔排序