Re: Grabbing the pixels of a bmp
==================== still no good
pBitmap->GetBitmap(&bmpX);
//LPVOID bmpinfo = new BYTE[sizeof(BITMAP)];
//pBitmap->GetObject(sizeof(BITMAP), bmpinfo);
BYTE* bmpBuffer = (BYTE *)GlobalAlloc (GPTR, bmpX.bmWidth*bmpX.bmHeight);
pBitmap->GetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
for (int i = 0; i < ds.dsBm.bmHeight; i++) {
for (int j = 0; j < ds.dsBm.bmWidth; j+=4) { // 32 bit bitmap
if (bmpBuffer[i*ds.dsBm.bmHeight+j] == 255 &&
bmpBuffer[i*ds.dsBm.bmHeight+j+1] == 0 &&
bmpBuffer[i*ds.dsBm.bmHeight+j+2] == 0 &&
bmpBuffer[i*ds.dsBm.bmHeight+j+3] == 255)
AfxMessageBox ("Hit it", MB_OK, NULL);
=====================
"Jack" <jl@knight.com> ???g???l???s?D:uUwxK2GgGHA.1204@TK2MSFTNGP02.phx.gbl...
Still doesn't work
pBitmap->GetBitmap(&bmpX);
//LPVOID bmpinfo = new BYTE[sizeof(BITMAP)];
//pBitmap->GetObject(sizeof(BITMAP), bmpinfo);
BYTE* bmpBuffer = (BYTE *)GlobalAlloc (GPTR,
bmpX.bmWidth*bmpX.bmHeight);
pBitmap->GetBitmapBits(bmpX.bmWidthBytes*bmpX.bmHeight,bmpBuffer);
for (int i = 0; i < ds.dsBm.bmHeight; i) {
for (int j = 0; j < ds.dsBm.bmWidth; j=4) { // 32 bit bitmap
if (bmpBuffer[i*ds.dsBm.bmHeight] == 0 && bmpBuffer[i*ds.dsBm.bmHeight??]
== 0 &&
bmpBuffer[i*ds.dsBm.bmHeight??] == 255)
AfxMessageBox ("Hit it", MB_OK, NULL);
----------------------------------------
"Jack" <jl@knight.com> ???gco?l?Do?Ps?D:%23i33krGgGHA.4172@TK2MSFTNGP04.phx.gbl...
The problem I am having now is the bitmap pointer is byte-based.
I want to read 24 to 32 bit bitmaps
Any comments?
Jack
"Jack" <jl@knight.com> ???gco?l?FDo!Ps?D:OjJxcaGgGHA.1204@TK2MSFTNGP02.phx.gbl...
"doug mansell" <doug_mansell@hotmail.com>
???????:umIGUg$fGHA.3916@TK2MSFTNGP04.phx.gbl...
Jack wrote:
Hi,
I wonder how to grab the 'current' pixel of a bitmap
say
*****************
*((**************)
is the bitmap
I want to get the first row, first column pixel value
How do I do that in VC?
Thanks
Jack
You could read about this function: GetBitmapBits
doesn't work either
pBitmap->GetBitmap(&bmpX);
BYTE* bmpBuffer = (BYTE *)GlobalAlloc (GPTR,
bmpX.bmWidth*bmpX.bmHeight);
for (int i = 0; i < ds.dsBm.bmHeight; i) {
for (int j = 0; i < ds.dsBm.bmWidth; j) {
if (bmpBuffer[i*ds.dsBm.bmHeight] == RGB(255,255,0))
AfxMessageBox ("Hit it", MB_OK, NULL);
}
}
}