其实设置清晰度很简单,只要加上一下三行代码,就可以让生成的缩略图和PhotoShop生成的效果一样了:
1
Graphics _g = Graphics.FromImage(_newImg)
2
_g.SmoothingMode = SmoothingMode.AntiAlias;
3
_g.InterpolationMode = InterpolationMode.HighQualityBicubic;
4
_g.CompositingQuality = CompositingQuality.HighQuality;

2

3

4

完整的缩略图生成函数是这样的:
1
/// 改变图片尺寸
2
/// img -- 图片对象
3
/// sx -- 水平缩放比例
4
/// sy -- 垂直缩放比例
5
public static Bitmap ResizeImage(Image img, float sx, float sy)
6
{
7
return ResizeImage(img, (int)(img.Width * sx), (int)(img.Height * sy));
8
}
9
10
/// 改变图片尺寸
11
/// img -- 图片对象
12
/// width -- 新的宽度
13
/// height -- 新的高度
14
public static Bitmap ResizeImage(Image img, int width, int height)
15
{
16
Bitmap _newImg = new Bitmap(width, height);
17
18
using (Graphics _g = Graphics.FromImage(_newImg))
19
{
20
_g.SmoothingMode = SmoothingMode.AntiAlias;
21
_g.InterpolationMode = InterpolationMode.HighQualityBicubic;
22
_g.CompositingQuality = CompositingQuality.HighQuality;
23
_g.DrawImage(img, 0, 0, width, height);
24
}
25
26
return _newImg;
27
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27
