asp.net生成高清晰缩略图(转)
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

浙公网安备 33010602011771号