asp.net生成高清晰缩略图(转)

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 1ExpandedBlockStart.gifContractedBlock.gif/**//// <summary> 
 2        /// 生成缩略图 
 3        /// </summary> 
 4        /// <param name="originalImagePath">源图路径(物理路径)</param> 
 5        /// <param name="thumbnailPath">缩略图路径(物理路径)</param> 
 6        /// <param name="width">缩略图宽度</param> 
 7        /// <param name="height">缩略图高度</param>   

 8        public  void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height) 
 9ExpandedBlockStart.gifContractedBlock.gif        
10          System.Drawing.Image   originalImage = System.Drawing.Image.FromFile(originalImagePath); 
11
12           int towidth = 0
13           int toheight =0
14            if(originalImage.Width>width &&originalImage.Height<height) 
15ExpandedSubBlockStart.gifContractedSubBlock.gif            
16                towidth = width; 
17                toheight = originalImage.Height; 
18            }
 
19
20            if (originalImage.Width<width && originalImage.Height >height) 
21ExpandedSubBlockStart.gifContractedSubBlock.gif            
22                towidth = originalImage.Width; 
23                toheight = height; 
24            }
 
25            if (originalImage.Width > width && originalImage.Height > height) 
26ExpandedSubBlockStart.gifContractedSubBlock.gif            
27                towidth = width; 
28                toheight = height; 
29            }
 
30            if (originalImage.Width < width && originalImage.Height < height) 
31ExpandedSubBlockStart.gifContractedSubBlock.gif            
32                towidth = originalImage.Width; 
33                toheight = originalImage.Height; 
34            }
 
35            int x = 0;//左上角的x坐标 
36            int y = 0;//左上角的y坐标 
37            
38
39            //新建一个bmp图片 
40         System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); 
41
42            //新建一个画板 
43            Graphics g = System.Drawing.Graphics.FromImage(bitmap); 
44
45            //设置高质量插值法 
46            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; 
47
48            //设置高质量,低速度呈现平滑程度 
49            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
50
51            //清空画布并以透明背景色填充 
52            g.Clear(Color.Transparent); 
53
54            //在指定位置并且按指定大小绘制原图片的指定部分 
55            g.DrawImage(originalImage,x,y,towidth,toheight); 
56
57            try 
58ExpandedSubBlockStart.gifContractedSubBlock.gif            
59                //以jpg格式保存缩略图 
60                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg); 
61            }
 
62            catch (System.Exception e) 
63ExpandedSubBlockStart.gifContractedSubBlock.gif            
64                throw e; 
65            }
 
66            finally 
67ExpandedSubBlockStart.gifContractedSubBlock.gif            
68                originalImage.Dispose(); 
69                bitmap.Dispose(); 
70                g.Dispose(); 
71            }
 
72        }

73

转载于:https://www.cnblogs.com/yangxiaohu1/archive/2008/11/14/1333815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值