[帖]C#图像处理Bit地图会自动压缩图片吗

[求助帖]C#图像处理Bitmap会自动压缩图片吗?
为什么导入大小为5.93 MB、位深度为24位、分辨率为1920*1080的bmp格式图片,导出的bmp格式图片分辨率不变,位深度增加到了32位,内存反而只有2.64 MB了呢?换一张图片导出的内存又不同。
不是bmp图片不会进行压缩吗?怎样得到没有压缩的位深度为24的图片?
以后的工作,我需要对图片的每个亚像素进行重新排列,请教C#图像处理大神推荐些C#中winfrom图像处理的书给零基础的我看看,目前处于没有指导自己瞎摸索的阶段,大部分时间都在浪费时间,没有进展。谢谢了!
 附程序:
    public Bitmap image1,image2;

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofdlg = new OpenFileDialog();
            ofdlg.Filter = "图文文件(*.bmp,*.gif,*.bmp,*.png)|*.bmp;*.gif;*.bmp;*.png";
            if (ofdlg.ShowDialog() == DialogResult.OK)
            {
                image1 = new Bitmap(ofdlg.FileName);
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            image2 = new Bitmap(image1);
            string str;
            saveFileDialog1.Filter = "bmp文件(*.BMP)|*.BMP|All File(*.*)|*.*";
            saveFileDialog1.ShowDialog();
            if (saveFileDialog1.FileName != "")
            {
                str = saveFileDialog1.FileName;
                image2.Save(str);
                MessageBox.Show("保存成功!");
            }
        }
------解决思路----------------------
那个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方式处理内存中的图像数据比较快,可以参考这里,是一个图像比较的问题。