怎样用数组依次读取BMP图像每个点的的RGB值
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;y<bt.bmHeight;y++)
for(x=0;i<bt.bmWidth;x++)
{
rgg_b=y*bt.bmWidthBytes+x*PixelBytes;
px[rgb_b+0]
px[rgb_b+1]
px[rgb_b+2]//以上三个值就分别是BGR三个色彩的值。
}
假设要处理的位图是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;y<bt.bmHeight;y++)
for(x=0;i<bt.bmWidth;x++)
{
rgg_b=y*bt.bmWidthBytes+x*PixelBytes;
px[rgb_b+0]
px[rgb_b+1]
px[rgb_b+2]//以上三个值就分别是BGR三个色彩的值。
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询