BMP图片的显色原理是RGB,其中所说的"位"表示一个像素占用的位数,如果我们看到一张图片是1位的,那就说明这张图片的每一个像素都是用二进制中的一位表示的,也就是1bit,要知道这样的8bit就是1byte,而1024byte就是1kb。如此,我们就可以算出一张bmp图像的大小,比如一张长8宽8,以及8位的bmp图片,大小就为8(长) * 8(宽) * 8(位),得出结果为512bit,然后512/8,得到64byte。
关于CreateBitmapFromImage函数,其第四个参数一定要设置为与其第一个参数中的位相匹配的参数,当然可以设置成 PIXFMT_DONTCARE 一忽略该参数设置,而让系统自行控制,否则会出现如下问题,或者根本绘制失败。
绘制出错:
原图: