Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

wykrywanie kolorów pikseli

Ostatnio zmodyfikowano 2012-11-30 20:02
Autor Wiadomość
soltaire33
Temat założony przez niniejszego użytkownika
wykrywanie kolorów pikseli
» 2012-11-30 19:44:05
witam, mam problem otóż chciałem napisać program którego zadaniem by było wykrywanie koloru piksela na środku ekranu, napisałem niestety nie działa, przedmiotem testowania był program GIMP. W GIMPie zamalowałem całą kartkę na czerwono mimo tego w konsoli pokazuje 255, 255, 255(biały) Co jest przyczyną?

C/C++
#include <windows.h>
#include <gdiplus.h>
#include <iostream>
using namespace std;

const int SCREEN_X =( 1024 / 2 );
const int SCREEN_Y =( 768 / 2 );

int main( void )
{
    // pixel detect
    HWND hWnd;
    hWnd = FindWindowA( NULL, "Edytor obrazów GIMP" );
    cout << "Waiting for window." << endl;
    while( hWnd == 0 )
    {
        hWnd = FindWindowA( NULL, "Edytor obrazów GIMP" );
        Sleep( 10 );
    }
   
    cout << "there is a window";
    HDC hdc = GetWindowDC( hWnd );
    short int R, G, B;
    COLORREF lcolor;
    lcolor = GetPixel( hdc, SCREEN_X, SCREEN_Y );
    R = GetRValue( lcolor );
    G = GetGValue( lcolor );
    B = GetBValue( lcolor );
    cout << R << ", " << G << ", " << B << endl;
    cin.get();
    return 0;
}
P-70162
Admixior
» 2012-11-30 20:02:20
hWnd = FindWindowA( NULL, "Edytor obrazów GIMP" );

pewny jesteś że to okno ma rozmiary przynajmniej 1024/2 i 768/2 i że jak będzie mniejszy rozmiar to nie będzie to środek? ;]

//nie musisz inkludować gdiplus bo się nie przydaje
//jak chcesz kolor środka ekranu to musisz pobrać hwnd całego ekranu: GetDestkopWindow()  zamiast tego findwindow
P-70166
« 1 »
  Strona 1 z 1