History:
Get Average Col
<=code_cpp=>
#include <stdio.h> #include <Windows.h> #include <Time.h> int _tmain(int argc, _TCHAR* argv[]) { HDC hdc, hdcTemp; RECT rect; BYTE* bitPointer; //int x, y; u_char red, green, blue, alpha; HWND win; // Get the device context for the screen win = GetDesktopWindow(); GetWindowRect(win, &rect); int MAX_WIDTH = rect.right; int MAX_HEIGHT = rect.bottom; BITMAPINFO bitmap; bitmap.bmiHeader.biSize = sizeof(bitmap.bmiHeader); bitmap.bmiHeader.biWidth = MAX_WIDTH; bitmap.bmiHeader.biHeight = MAX_HEIGHT; bitmap.bmiHeader.biPlanes = 1; bitmap.bmiHeader.biBitCount = 24; bitmap.bmiHeader.biCompression = BI_RGB; bitmap.bmiHeader.biSizeImage = MAX_WIDTH * 3 * MAX_HEIGHT; bitmap.bmiHeader.biClrUsed = 0; bitmap.bmiHeader.biClrImportant = 0; u_int r=0,g=0,b=0; while(true) { hdc = GetDC(HWND_DESKTOP); hdcTemp = CreateCompatibleDC(hdc); HBITMAP hBitmap2 = CreateDIBSection(hdcTemp, &bitmap, DIB_RGB_COLORS, (void**)(&bitPointer), NULL, NULL); SelectObject(hdcTemp, hBitmap2); BitBlt(hdcTemp, 0, 0, MAX_WIDTH, MAX_HEIGHT, hdc, 0, 0, SRCCOPY); for( int y=0, i=0; y<MAX_HEIGHT; y+=1 ) for( int x=0; x<MAX_WIDTH; x+=1 ) { i = (x + (MAX_HEIGHT-y-1)*MAX_WIDTH)*3; blue = (u_char)bitPointer[i]; green = (u_char)bitPointer[i+1]; red = (u_char)bitPointer[i+2]; r += red; g += green; b += blue; } printf("%d %d %d\n", r/(MAX_WIDTH*MAX_HEIGHT), g/(MAX_WIDTH*MAX_HEIGHT), b/(MAX_WIDTH*MAX_HEIGHT)); r=0;g=0;b=0; DeleteObject( hdcTemp ); DeleteObject( hBitmap2 ); ReleaseDC(HWND_DESKTOP, hdc); Sleep(150); } return 0; }
Code.Tode.cz by Henry - 2014