RGB Werte aus einer BMP Resource erlangen
-
Hallo miteinader,
ich versuche verzweifelt aus einer Resource die RGB Werte eines BMPs zu bekommen.
Hier meine momentanter VersuchCBitmap picture1; bool result = false; result = WebcamIcon.LoadBitmap(IDB_PICTURE_1); BITMAP bmp; memset(&bmp, 0, sizeof(bmp)); picture1.GetBitmap(&bmp); int w = bmp.bmWidthBytes; int h = bmp.bmHeight; int datasize = h * w; BYTE *pFileData = new BYTE [datasize]; picture1.GetBitmapBits(datasize, pFileData);leider steht in pFileData nur komisches Zeug.
Ist in meinem Ansatz schon ein Denkfehler?Bin für jede Hilfe dankbar!
Grüße André
-
Du hast da etweder was verdreht oder machst das noch net so lange oder wie auch immmer
CBitmap picture1; bool result = false; result = WebcamIcon.LoadBitmap(IDB_PICTURE_1); //entweder in picture1 laden BITMAP bmp; memset(&bmp, 0, sizeof(bmp)); picture1.GetBitmap(&bmp); //oder hier WebcamIcon verwenden int w = bmp.bmWidthBytes; int h = bmp.bmHeight; int datasize = h * w; BYTE *pFileData = new BYTE [datasize]; picture1.GetBitmapBits(datasize, pFileData); //und hieraber aus der uninizialisierten Bitmap picture1 wirst du auch nur Schrott bekommen.
Wobei das doch sicher einfacher geht:
BITMAP bm; CBitmap BM; BM.LoadBitmap(IDB_PICTURE_1); BM.GetObject(sizeof(BITMAP), (LPSTR)&bm); BYTE *bmpBuffer = new BYTE[ bm.bmWidthBytes*bm.bmHeight ];//allocate memory for image //byte buffer ULONG dwValue=BM.GetBitmapBits(bm.bmWidthBytes*bm.bmHeight, bmpBuffer);//Get the bitmap bits //into a structure*/
-
Gnraf... "WebcamIcon" sollte natürlich "picture1" heißen, hatte das hier leider falsch gepastet, sorry. Den Ansatz von dir mittels getObject finde ich eleganter!
Vielen Dank!Den Fehler den ich eigentlich gemacht hatte lag darin, dass ich von RGB Werten in dem Array ausging, tatsächlich aber stehen dort BGRA Werte drinne, und damit ist dann das Zeug auch nicht mehr so ganz komisch was da steht

Grüße André