GetPixel



  • hallo,

    zb.

    ich bin in einen spiel
    und wenn ein bestimmter punkt (x und y coords habe ich) zb blau wird oder ist
    dann soll er meinen code ausführen nur ich weiß nicht wie das geht
    hab mir GetPixel angeschaut aber veersteh es nicht

    mfG,
    help me



  • Help Me schrieb:

    [...]
    ich bin in einen spiel
    [...]

    N bissl konkreter wenn's geht...API-Basis ? OpenGL, DirectX, WinAPi( 😃 ) ?

    Hängt von der verwendetetn Grafikbibliothek ab.

    in WinAPI gehts recht einfach, hier ein einfaches Beispiel:

    // HDC holen:
    HDC hdcDesktop = GetDC(GetDesktopWindow());
    // Pixelfarbe ermitteln:
    COLORREF crExtracted = GetPixel(hdcDesktop, X-Position, Y-Position); // Hier müssen natürlich korrekte Interger stehen...
    // einzelne Farbwerte extrahieren, wenn nötig:
    BYTE byRed, byGreen, byBlue;
    byRed   = GetRValue(crExtracted);
    byGreen = GetGValue(crExtracted);
    byBlue  = GetBValue(crExtracted);
    // HDC wieder freigeben:
    ReleaseDC(hdcDesktop);
    


  • also basis ist :

    DirectX

    mfG,
    help me



  • sry für double post:

    nochmal zu :

    // HDC holen:
    HDC hdcDesktop = GetDC(GetDesktopWindow());
    // Pixelfarbe ermitteln:
    COLORREF crExtracted = GetPixel(hdcDesktop, X-Position, Y-Position); // Hier müssen natürlich korrekte Interger stehen...
    // einzelne Farbwerte extrahieren, wenn nötig:
    BYTE byRed, byGreen, byBlue;
    byRed   = GetRValue(crExtracted);
    byGreen = GetGValue(crExtracted);
    byBlue  = GetBValue(crExtracted);
    // HDC wieder freigeben:
    ReleaseDC(hdcDesktop);
    

    wie kann ich da zb in nen file mit fopen usw... reinschreiben die :

    Hex - Wert
    Dezimal - Wert

    und dann zb vergleichen

    if(GetPixel(x,y) == 0x000000) { printf("muh"); }

    ty for hilfe und daas mit DirectX vergessen

    mfG,
    help me



  • Wenns für DirectX ist, ist das hier das falsche Forum. Lass dich mal ins Spieleprogrammierungs-Forum verschieben.

    Dann noch:

    wie kann ich da zb in nen file mit fopen usw... reinschreiben die :

    Hex - Wert
    Dezimal - Wert

    Wo ist das problem ?



  • Falls du es noch nicht hast:

    HWND hwnd = NULL;
    HDC hdc = GetDC(hwnd);
    
    COLORREF farben = GetPixel(hdc,x,y);
    int r = GetRValue(farben);
    int g = GetGValue(farben);
    int b = GetBValue(farben);
    //so kannst du den farbwert bestimmen, glaub so war es
    

    geht aber auch einfacher:

    if(GetPixel(hdc,x,y) == RGB(r,g,b))
    {
    //mache etwas
    }
    


  • Gordon11111 schrieb:

    Falls du es noch nicht hast:

    HWND hwnd = NULL;
    HDC hdc = GetDC(hwnd);
    
    COLORREF farben = GetPixel(hdc,x,y);
    int r = GetRValue(farben);
    int g = GetGValue(farben);
    int b = GetBValue(farben);
    //so kannst du den farbwert bestimmen, glaub so war es
    

    geht aber auch einfacher:

    if(GetPixel(hdc,x,y) == RGB(r,g,b))
    {
    //mache etwas
    }
    

    Mir ging es um die Extrahierung der Farb-Komponenten.


Anmelden zum Antworten