C#生成高清缩略图

01/// <summary> 
02   /// 为图片生成缩略图   
03   /// </summary> 
04   /// <param name="phyPath">原图片的路径</param> 
05   /// <param name="width">缩略图宽</param> 
06   /// <param name="height">缩略图高</param> 
07   /// <returns></returns> 
08   public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, intheight) 
09   
10       Bitmap bmp = newBitmap(width, height); 
11       //从Bitmap创建一个System.Drawing.Graphics 
12       System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp); 
13       //设置  
14       gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
15       //下面这个也设成高质量 
16       gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 
17       //下面这个设成High 
18       gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
19       //把原始图像绘制成上面所设置宽高的缩小图 
20       System.Drawing.Rectangle rectDestination = newSystem.Drawing.Rectangle(0, 0, width, height); 
21    
22       gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); 
23       returnbmp; 
24   }

 

调用方法

01HttpPostedFile file = photoFile.PostedFile; 
02        if(!file.ContentType.Contains("image")) 
03        
04return"照片格式不合法"
05        
06        stringext = Path.GetExtension(file.FileName).ToLower(); 
07        if (ext != ".jpg" && ext != ".gif" && ext != ".png"&& ext != ".jpeg"
08        
09return"请您上传jpg、gif、png图片"
10        
11        if(file.ContentLength > 5 * 1024 * 1024) 
12        
13return"请您上传512字节内的图片"
14        
15        stringnewName = Guid.NewGuid().ToString(); 
16        stringtempPath = "upload/"
17        stringimg = tempPath + newName + ext; 
18        stringfilePath = Server.MapPath(img); 
19        if(!Directory.Exists(tempPath)) 
20        
21            Directory.CreateDirectory(tempPath); 
22        
23        using(System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream)) 
24        
25            GetThumbnail(originalImage, 504, 374).Save(filePath); 
26        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值