怎么获得整幅BMP图象的RGB
如何获得整幅BMP图象的RGB
各位大虾好,小弟我在获取图象象素点的RGB值时,使用到GetPixel()函数,
情况如下:
CDC* pDC = GetDC();
color = pDC-> GetPixel(picture.peis[i][j].point);//picture是自己定义的类
RValue = (int)(GetRValue(color));
GValue = (int)(GetGValue(color));
BValue = (int)(GetBValue(color));
现在我的问题是pDC=GetDC();只能得到当前窗口的可见部分(窗口已添置了滚动条)。当我载入图象时,图象的大小有时会超出窗口的大小,这样我用GetPixel()得到的RGB只能是窗口看见部分的图象的RGB值,而超出窗口的部分得到的却是(255,255,255)的值,请问要怎么修改程序才能得到整个RGB值呢 ?
我找了相关问题,说要把BMP图象加入VC工程的资源,请问要怎么弄呢?因为BMP不是位图,不能直接载入。
或者大虾们有其他的什么好的方法可以得到整个BMP的RGB值?
大虾们帮帮忙啊,毕设急用啊 !!!!小弟我感激不尽啊!!!
------解决方案--------------------
创建一个空白的MemDC,把位图选进去,然后得到位图的高和宽,循环取出这个MemDC的像素就可以了
------解决方案--------------------
// Create memory dc
CDC memDC;
memDC.CreateCompatibleDC(NULL);
// Load bitmap
CBitmap bmp;
bmp.LoadBitmap(...);
// Get bitmap size
BITMAP bm;
bmp.GetBitmap(&bm);
int nWidth = bm.bmWidth;
int nHeight = bm.bmHieght;
memDC.SelectObject(&bmp);
COLORREF clr;
for(int x=0; x < nWidth; x++)
{
for(int y=0; y < nHeight; y++)
{
clr = memDC.GetPixel(x, y);
....
}
}
------解决方案--------------------
我BLOG上有一篇快速简单的方法,可以参考一下
各位大虾好,小弟我在获取图象象素点的RGB值时,使用到GetPixel()函数,
情况如下:
CDC* pDC = GetDC();
color = pDC-> GetPixel(picture.peis[i][j].point);//picture是自己定义的类
RValue = (int)(GetRValue(color));
GValue = (int)(GetGValue(color));
BValue = (int)(GetBValue(color));
现在我的问题是pDC=GetDC();只能得到当前窗口的可见部分(窗口已添置了滚动条)。当我载入图象时,图象的大小有时会超出窗口的大小,这样我用GetPixel()得到的RGB只能是窗口看见部分的图象的RGB值,而超出窗口的部分得到的却是(255,255,255)的值,请问要怎么修改程序才能得到整个RGB值呢 ?
我找了相关问题,说要把BMP图象加入VC工程的资源,请问要怎么弄呢?因为BMP不是位图,不能直接载入。
或者大虾们有其他的什么好的方法可以得到整个BMP的RGB值?
大虾们帮帮忙啊,毕设急用啊 !!!!小弟我感激不尽啊!!!
------解决方案--------------------
创建一个空白的MemDC,把位图选进去,然后得到位图的高和宽,循环取出这个MemDC的像素就可以了
------解决方案--------------------
// Create memory dc
CDC memDC;
memDC.CreateCompatibleDC(NULL);
// Load bitmap
CBitmap bmp;
bmp.LoadBitmap(...);
// Get bitmap size
BITMAP bm;
bmp.GetBitmap(&bm);
int nWidth = bm.bmWidth;
int nHeight = bm.bmHieght;
memDC.SelectObject(&bmp);
COLORREF clr;
for(int x=0; x < nWidth; x++)
{
for(int y=0; y < nHeight; y++)
{
clr = memDC.GetPixel(x, y);
....
}
}
------解决方案--------------------
我BLOG上有一篇快速简单的方法,可以参考一下