Image im = Image.FromFile("d:\\图片.png");
int ww = 800, hh = 0;
//按照目标宽度计算出目标高度
hh = (int)(((double)ww / (double)im.Width) * im.Height);
Bitmap bm = new Bitmap(ww, hh);
//新建一个画板
Graphics g = Graphics.FromImage(bm);
g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawImage(im, new Rectangle(0, 0, ww, hh));
//g要dispose吗?
g.Dispose();
bm.Save("d:\\图片_resize.png", ImageFormat.Png);
im.Dispose();
bm.Dispose();
代码如上,选择 一张png文件(宽度1000以上),运行之后生成一个宽度800的小图;结果这个小图的大小(byte)比原图还大。为什么?

如果是JPG则没有这个问题。
da jia hao!