asp.net生成高清晰缩略图(转)
Code
1/**//// <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 {
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)
15 {
16 towidth = width;
17 toheight = originalImage.Height;
18 }
19
20 if (originalImage.Width<width && originalImage.Height >height)
21 {
22 towidth = originalImage.Width;
23 toheight = height;
24 }
25 if (originalImage.Width > width && originalImage.Height > height)
26 {
27 towidth = width;
28 toheight = height;
29 }
30 if (originalImage.Width < width && originalImage.Height < height)
31 {
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
58 {
59 //以jpg格式保存缩略图
60 bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
61 }
62 catch (System.Exception e)
63 {
64 throw e;
65 }
66 finally
67 {
68 originalImage.Dispose();
69 bitmap.Dispose();
70 g.Dispose();
71 }
72 }
73
1/**//// <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 {
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)
15 {
16 towidth = width;
17 toheight = originalImage.Height;
18 }
19
20 if (originalImage.Width<width && originalImage.Height >height)
21 {
22 towidth = originalImage.Width;
23 toheight = height;
24 }
25 if (originalImage.Width > width && originalImage.Height > height)
26 {
27 towidth = width;
28 toheight = height;
29 }
30 if (originalImage.Width < width && originalImage.Height < height)
31 {
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
58 {
59 //以jpg格式保存缩略图
60 bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
61 }
62 catch (System.Exception e)
63 {
64 throw e;
65 }
66 finally
67 {
68 originalImage.Dispose();
69 bitmap.Dispose();
70 g.Dispose();
71 }
72 }
73