怎样用数组依次读取BMP图像每个点的的RGB值

2025-02-24 23:58:13
推荐回答(1个)
回答1:

对于HBITMAP位图是有办法的。
假设要处理的位图是HBITMAP hBitmap;
代码如下:
CBitmap m;
m.FromHandle(hBitmap);
BITMAP bt;
GetObject(sizeof(bt),&bt);
unsigned char *px=new unsigned char [bt.bmHeight*bt.bmbmWidthBytes];
m.GetBitmapBits(bt.bmHeight*bt.bmbmWidthBytes,px);//读取位图数据
int PixelBytes=bt.bmBitsPixel/8;//每一个像素占字节数
int rgb_b;
for(y=0;yfor(x=0;i{
rgg_b=y*bt.bmWidthBytes+x*PixelBytes;
px[rgb_b+0]
px[rgb_b+1]
px[rgb_b+2]//以上三个值就分别是BGR三个色彩的值。
}