你想得到位图文件(bmp)里面图素的一部分,那首先打开文件然后读入到内存(CreateFile和ReadFile)。
然后,你能得到文件在内存里面的指针(ReadFile的参数2输出),姑且叫pfile,类型转换成BITMAPFILEHEADER *;
之后,就可以得到图素数据的指针:
pBits = (BYTE *) pfile + pfile->bfOffBits ; //这个就是图素起始位置的指针了
之后你想取哪里,就从pBits开始往后偏移就行了。
当然需要注意:
1.我这里说的位图是真彩色的,24位,没有调色盘,当然现在一般的位图也都是24位的。
2.你要清楚的是,bmp文件存图素的顺序是倒过来的,pBits处的第一个像素是图片的左下角的像素(最后一行最左边),像素的顺序是自左向右,自下向上(第二个像素是最后一行左边第二个,以此类推)。每个像素3个BYTE(仅仅指24位位图)。顺序是蓝,绿,红。