我用一个C#程序生成的BMP图 长宽为500*80 32位图 理论上应该是120054字节.
 可是用Graphics画出来最后生成的是155648个字节,重点来了:我用WINDOWS画板打开后点了二下反色后,只是为了改动一下能够保存图片,结果就是从155648字节变成120054个了  
有强人能从BMP生成的原理上给解释一下吗,谢了,因为我写的转图程序必须要求生成的BMP图是规范的, 

解决方案 »

  1.   

    http://baike.baidu.com/view/189487.htm
      

  2.   

    不是很懂,不过有可能是WINDOWS的PAINT对BMP进行压缩过了。或者是对BMP中颜色表进行必要的删减了。
    你用C#生成的方法不是很清楚,用PICTUREBOX保存看看。是否有区别。
      

  3.   

    谢谢楼上的各位,有一点不明白的就是,这样说吧呵,我现在用最简单的生成方法       Graphics g=this.CreateGraphics();       Bitmap bmp = new Bitmap(500, 80, g);       bmp.Save("E:\\crt.bmp", ImageFormat.Bmp);       ImageFormat.Bmp 只是为了生成的图片文件有bmp固定的前54个字节,      我用UE打开生成的图,其中高度和宽余度是500和80
          按照BMP的大小算法的话应该是500*3*80+54
            怪就怪在用画图的东西反色一下就成了标准的字节数,
            如果我不用,那其大小就是上面说的,颜色表真彩图是没有的,是不是在 Graphics 的时候给每一行补了东西?