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