解决方案 »

  1.   

    那个Save方法它不管你文件扩展名是什么,如果不加第二个参数定义格式ImageFormat.Bmp的话,都默认用png格式保存的,png是无损压缩的,所以变小了。
    可以用下面的方式创建一个Format24bppRgb格式的bmp,把原图画上去,然后保存:var bmp1 = Image.FromFile(@"e:\test.bmp");
    var bmp2 = new Bitmap(bmp1.Width, bmp1.Height, PixelFormat.Format24bppRgb);
    using (var g = Graphics.FromImage(bmp2))
        g.DrawImage(bmp1, 0, 0, bmp2.Width, bmp2.Height);
    bmp2.Save(@"e:\test_2.bmp", ImageFormat.Bmp);关于位图的处理,一般是用LockBits的方式拿到bmp的内存,自己unsafe方式处理内存中的图像数据比较快,可以参考这里,是一个图像比较的问题。