HBITMAP bei DC Erstellung kann nicht angesprochen werden
-
Bei GetDIBits musst du einen Pointer auf einen Speicher von dir übergeben. Da werden die Daten dann reinkopiert. Reine Vorsichtsmaßnahme von Windows^^
Soweit ich weiß, funktioniert GetBitmapBits auch. Soll man nicht mehr benutzen (warum auch immer...), aber solange es funkioniert

-
Also bei mir klappt auch GetBitmapBits nicht

void *pBits=NULL; int read=0; // 100x100 32 bit if( (read=GetBitmapBits( hBmp, (100*100)*4, &pBits )) > 0 ) { printf( "\n Success" ); }
-
struct SCOLOR32 { UCHAR R, G, B, A; }; ... SCOLOR32* pBits = new SCOLOR32 [ 100*100 ]; int read=0; // 100x100 32 bit if( (read=GetBitmapBits( hBmp, (100*100)*4, pBits )) > 0 ) { printf( "\n Success" ); ... } delete [] pBits;EDIT: ...
-
Muss dat nit SCOLOR32* pBits = new SCOLOR32 [ 100*100 ] heißen ?^^
-
Oh, hast recht

Editier ich schnell, vielleicht hat ers noch nicht gelesen
Danke

-
Besten Dank. Dachte der pointer wird von der funktion erstellt.
-
Soo.. also habe leider grundelegende Probleme mit GetBitmapBits(), wobei ich denke das liegt eher an den Pointern.
Ich habe zwei weiße Bitmaps. Bei einem sind in x und y Richtung 3*3=9 Pixel rot.
Ich möchte jetzt jeden Pixel überprüfen und alle, die nicht gleich sind ausgeben.int cmp_count=0; for( int iY=0; iY < bmSrc.bmWidth; iY++ ) { printf( "\nNew Line"); for( int iX=0; iX < bmSrc.bmWidth; iX++ ) { BMP_COLOR24 clr_src = ((BMP_COLOR24*)lpBitsSrc)[iY*bmSrc.bmWidth+iX]; BMP_COLOR24 clr_cmp = ((BMP_COLOR24*)lpBitsCmp)[iY*bmCmp.bmWidth+iX]; if( clr_src.R == clr_cmp.R && clr_src.G == clr_cmp.G && clr_src.B == clr_cmp.B ) { cmp_count++; } else { printf( "\n%d, %d", iX, iY ); break; } }//for }//forAusgabe: (NUR 3!!!)
New Line
0,0
New Line
0,1
New Line
0,2Eigentlich müssten es 6 sein.

-
Keiner Eine Ahnung?

-
Hatte alles seine Richtigkeit. lag an einem Problem meinerseits.
-
Achja, es wurden nicht alle Pixel ausgegeben, da die Vergleich durch ein break; unterbrochen wurde, sobald die ersten nicht gleich sind.
Also immer aufpassen! Und nochmals besten Dank an alle, die an diesem Thread mitgewirkt haben.