将一张图片处理成多张不用尺寸的图片 自动生成缩略图 类似淘宝主图处理
2014-04-05 11:21
579 查看
将一张图片处理成多张不用尺寸的图片 自动生成缩略图
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO; using System.Drawing.Imaging; using System.Drawing; public partial class ImageHandler : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { try { foreach (string f in Request.Files.AllKeys) { CreateNewSizePic(sPath, sPath + fileName, fileName, ".jpg"); } } catch (Exception ex) { Response.Write("error"); } Response.End(); } /// <summary> /// 将一张图片处理成多张不用尺寸的图片 /// path 文件需要保存的路径(E:\新建文件夹2) /// orifielpath 当前原图文件的路径(E:\新建文件夹\1.jpg) /// orifilename 原图文件名称(1.jpg) /// fileType 原图后缀名(.jpg) /// </summary> /// <param name="filename"></param> public static string CreateNewSizePic(string path, string orifielpath, string orifilename, string fileType) { Bitmap bm = new Bitmap(orifielpath); SaveThumbnail(bm, 310, 310, path, orifilename + "_310X310", fileType); SaveThumbnail(bm, 230, 230, path, orifilename + "_230X230", fileType); SaveThumbnail(bm, 160, 160, path, orifilename + "_160X160", fileType); SaveThumbnail(bm, 80, 80, path, orifilename + "_80X80", fileType); SaveThumbnail(bm, 60, 60, path, orifilename + "_60X60", fileType); return path; } private static void SaveThumbnail(Bitmap originBitmap, int width, int height, string directory, string filename, string extension) { var physicalPath = directory + filename + extension; using (var newImage = new Bitmap(width, height)) { using (var graphic = GetGraphic(originBitmap, newImage)) { graphic.DrawImage(originBitmap, 0, 0, width, height); using (var encoderParameters = new EncoderParameters(1)) { encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 100L); newImage.Save(physicalPath, ImageCodecInfo.GetImageEncoders().Where(x => x.FilenameExtension.Contains(extension.ToUpperInvariant())).FirstOrDefault(), encoderParameters); } } } } private static Graphics GetGraphic(System.Drawing.Image originImage, Bitmap newImage) { newImage.SetResolution(originImage.HorizontalResolution, originImage.VerticalResolution); var graphic = Graphics.FromImage(newImage); graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphic.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; return graphic; } }
相关文章推荐
- mvc4 截取上传图片做头像,自动生成不同小尺寸缩略图
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- mvc4 截取上传图片做头像,自动生成不同小尺寸缩略图
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- 将一张图片生成多张缩略图并保存
- mvc4 截取上传图片做头像,自动生成不同小尺寸缩略图 (地址)
- 织梦dedecms将指定图片自动生成指定尺寸的小图、缩略图、图片的方法
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- 【JSP上传图片并自动生成缩略图】
- java图片处理——多张图片合成一张Gif图片并播放或Gif拆分成多张图片
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- Java 图片处理——如何生成高清晰度而占有磁盘小的缩略图
- 关于asp.net上传图片自动生成缩略图
- 『ASP.NET 2.0』FileUpload图片上传自动生成缩略图
- C#的图片处理类,加水印及生成缩略图
- FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图的方法
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
- 如何实现ASP上传图片自动生成缩略图