-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathprgbtriple.cpp
24 lines (23 loc) · 902 Bytes
/
prgbtriple.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <windows.h>
int main() {
HDC desk = GetDC(0); HWND wnd = GetDesktopWindow();
int sw = GetSystemMetrics(0), sh = GetSystemMetrics(1);
BITMAPINFO bmi = { 40, sw, sh, 1, 24 };
PRGBTRIPLE rgbtriple;
for (;;) {
desk = GetDC(0);
HDC deskMem = CreateCompatibleDC(desk);
HBITMAP scr = CreateDIBSection(desk, &bmi, 0, (void**)&rgbtriple, 0, 0);
SelectObject(deskMem, scr);
BitBlt(deskMem, 0, 0, sw, sh, desk, 0, 0, SRCCOPY);
for (int i = 0; i < sw * sh; i++) {
int x = i % sw, y = i / sh, t = y ^ y | x;
rgbtriple[i].rgbtRed += GetRValue(i)&i;
rgbtriple[i].rgbtGreen += GetGValue(i)&i;
rgbtriple[i].rgbtBlue += GetBValue(i)&i;
}
BitBlt(desk, 0, 0, sw, sh, deskMem, 0, 0, SRCCOPY);
ReleaseDC(wnd, desk);
DeleteDC(desk); DeleteDC(deskMem); DeleteObject(scr); DeleteObject(wnd); DeleteObject(rgbtriple); DeleteObject(&sw); DeleteObject(&sh); DeleteObject(&bmi);
}
}