HBITMAP pixelweise auslesen
-
huhu
ich habe ein gefülltes HBITMAP...
wie kann ich auf die einzelnen Pixel zugreifen, sie auslesen
und verändern?danke euch schonmal
babel
-
Da musst Du einen Speicherkontext erstellen, dort die HBITMAP einsetzen und dann mit SetPixel/GetPixel arbeiten.
-
Wenn du nur wenige Pixel ändern bzw. abfragen möchtest, kannst du es in einen DC selektieren und dann mit GetPixel / SetPixel arbeiten. Ansonsten kann man sowas afaik über GetDIBits machen - habe damit aber selbst keine Erfahrung...
-
hey danke euch schonmal...
also wenn ich jedes pixel einzelnd auslese und testweise ausgebe
sehe ich leider nur schwarz...wenn ich es mit BitBlt mache sehe ich garnichts
also weisser hintergrund
bei meiner VIEW (MFC-Anwendung)hier mal meine OnDraw():
void CTestView::OnDraw(CDC* pDC) { CWebcam_testDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); //pDC->TextOut(100,100,buf); if(hBitmap!=NULL) { CDC *test = new CDC; test->CreateCompatibleDC(pDC); test->SelectObject(hBitmap); pDC->BitBlt( 0, 0, 640, 480, test, 0, 0, SRCCOPY ); /*for(int i=0;i<640;i++) { for(int j=0;j<480;j++) { pDC->SetPixel(i,j,test->GetPixel(i,j)); } }*/ } }ist der ansatzt denn richtig?
danke schonmal

-
was mache ich denn falsch?
hmm :-|
-
Hmm, sieht nach MFC aus?
Du selektierst hBitmap da ins test-DC, aber machst das anschließend nirgends wieder rückgängig? Oder muss man das bei MFC nich?