//省略很多的关于显示的代码
CBitmap bitmap;
BITMAP bm;
//.....//
bitmap->GetBitmap(&bm);
int bitmapsize=bm.bmHeight*bm.bmwidthBytes;
BYTE* px=(BYTE*)GlobalAlloc(GPTR,bitmapsize);//声明px数组,可惜是一维的
DWORD dwvalue;
dwvalue=bitmap->GetBitmapBus(bitmapsize,px);int rgb,x,y;
int PixelBytes=bm.bmBitsPixel/8;
for(y=0;y<bm.bmHeight;y++)
for(x=0;x<bm.bmwidth;x++)
{
rgb=y*bm.bmwidthBytes+x*pixelBytes;
px[rgb+0]...//读取R
px[rgb+1]...//读取G
px[rgb+2]...//读取B
} //bmp图象
我的问题是怎样声明一个数组来存放32bit图象的灰度?
我知道RGB与GRAY之间的关系
CBitmap bitmap;
BITMAP bm;
//.....//
bitmap->GetBitmap(&bm);
int bitmapsize=bm.bmHeight*bm.bmwidthBytes;
BYTE* px=(BYTE*)GlobalAlloc(GPTR,bitmapsize);//声明px数组,可惜是一维的
DWORD dwvalue;
dwvalue=bitmap->GetBitmapBus(bitmapsize,px);int rgb,x,y;
int PixelBytes=bm.bmBitsPixel/8;
for(y=0;y<bm.bmHeight;y++)
for(x=0;x<bm.bmwidth;x++)
{
rgb=y*bm.bmwidthBytes+x*pixelBytes;
px[rgb+0]...//读取R
px[rgb+1]...//读取G
px[rgb+2]...//读取B
} //bmp图象
我的问题是怎样声明一个数组来存放32bit图象的灰度?
我知道RGB与GRAY之间的关系
解决方案 »
- 关于函数返回局部指针变量的问题
- CArray使用求助
- 请问大家,如何使每次生成的随机数都不同呢?
- windows media player 控件问题(evc)
- 一个复制、粘贴的问题,高手请进................,100分相送!
- 请问我的ATL Service型的组件在客户端调用时逆初始化后关闭窗口有内存不能为读错误,如果不逆初始化关闭就没错误
- 如何把“打开文件对话框(CFileDialog)”的InitialDir设成“网上邻居”?
- 紧急求助 打印问题 高分奉送 请大家帮帮忙
- 深入浅出MFC(第二版 侯俊杰)之RTTI(运行时类型识别)Page99--高分答谢!
- 有个问题一直解决不了error creating .\Debug\check.exe.embed.manifest.res
- 新手,急啊!!编译出错~~~达人入
- 怎么用HeapAlloc()函数来分配内存?
只是用过别忘了GlobalFree就行了
GlobalAlloc
The GlobalAlloc function allocates the specified number of bytes from the heap. HGLOBAL GlobalAlloc(
UINT uFlags, // allocation attributes
DWORD dwBytes // number of bytes to allocate
);
LPVOID GlobalLock(
HGLOBAL hMem // handle to the global memory object
);
Parameters
hMem
Handle to the global memory object. This handle is returned by either the GlobalAlloc or GlobalReAlloc function.
Return Values
If the function succeeds, the return value is a pointer to the first byte of the memory block.
int * lpBits = GlobalLock(hHnd);
GlobalFree(hHnd );
BOOL GlobalUnlock(
HGLOBAL hMem // handle to the global memory object
);