JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=8480f291380f73a5c334a1497be22a2bMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Pixel vom aktuellen Bildschirm auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 09.11.2006, 17:06    Titel: Pixel vom aktuellen Bildschirm auslesen Antworten mit Zitat

Hallo,

ich möchte gerne vom aktuellen Bildschirm die Pixeldaten auslesen, und habe mir dazu Folgendes provisorisch zusammengebastelt:

CPP:
   HDC hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); // Bildschirmabbild

   int breite  = GetDeviceCaps(hdcScreen, HORZRES);
   int hoehe = GetDeviceCaps(hdcScreen, VERTRES);

   //auslesen
   DWORD farbe;
   DWORD r,g,b;

   farbe = GetPixel(hdcScreen,5,5); // testweise pixel an koord. 5x5 auslesen

   r = GetRValue(farbe); // ist immer 255
   g = GetGValue(farbe); // ist immer 255
   b = GetBValue(farbe); // ist immer 255


   DeleteDC(hdcScreen);


Irgendetwas scheine ich vergessen zu haben?!
Egal welchen Pixel ich auch angebe, er ist immer 255, was aber nicht dem Bildschirminhalt entspricht.

Wer weiß Rat?
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
manu
Super JLI'ler


Alter: 34
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 09.11.2006, 17:27    Titel: Antworten mit Zitat

hm, hab noch nie intensiv damit gearbeitet, erinnere mich aber dran in nem fremden code in dem zusammenhang mal sowas nach dem CreateDC() gesehehen zu haben.

CPP:
CreateCompatibleDC(hdcScreen);


hab grad mal geguckt und den befehl gibts wirklich so.. hab leider grad keine Zeit noch in der msdn genauer nachzuschlagen. Ist mir bloß gerade so eingefallen Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 09.11.2006, 20:46    Titel: Antworten mit Zitat

ich musste das auch mal machen, um den Bildschirminhalt drucken zu lassen; ich bin damals so vorgegangen:

Code:

1. DC des Fensters mit GetDC holen
2. die Bitmap des Screens mit CreateCompatibleBitmap holen, dem als erstes den DC von gerade übergeben und dann die Auflösung
3. kompatiblen SpeicherDC mit CreateCompatibleDC mit DC aus 1. holen
4. die Bitmap mit SelectObject in den DC aus 3. laden
5. mit BitBlt den Fenster inhalt des DC aus 1. in DC aus 3. laden, so:
BitBlt(hMemDC, 0, 0, cx, cy, hWndDC, 0, 0, SRCCOPY);


Danach kannst du mit GetPixel und dem DC aus 3. die Pixel abfragen

am Ende musst du in dieser Reihenfolge alles wieder freigeben:
Code:

1. DeleteDC mit DC aus 3.
2. DeleteObject mit Bitmap aus 2.
3. ReleaseDC mit hWnd und DC aus 1.


sry, hab grad leider keine Zeit das ausführlicher zu beschreiben, guck am besten in der MSDN, probiers so, und schreib die Fragen hier rein, ich beantworte die dann in den nächsten Tagen(falls es kein anderer vorher macht Cool )

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
magynhard
Super JLI'ler



Anmeldedatum: 26.04.2003
Beiträge: 461
Wohnort: Wild durch die Welt ;-)
Medaillen: Keine

BeitragVerfasst am: 10.11.2006, 05:24    Titel: Antworten mit Zitat

Danke! Ich werde damit mal rumhantieren und eine Rückmeldung geben.
_________________
Niemand ist hoffnungsloser versklavt als der, der fälschlich glaubt frei zu sein. [J. W. Goethe]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum