Witam! Ja mam takie pytanie: Jak napisać funkcje wyświetlającą i pobierającą pojedynczy piksel o parametrach -pozycja(x,y) -kolor (r,g,b) -kanał alpha. Efektem działania funkcji ma być piksel wyświetlony na pozycji x,y na pulpicie. Prosze tylko bez winapi bo nie chodzi mi o robienie tysięcy jednopikselowych okien tylko o zarządzanie pikselami na ekranie.
0
0
zainteresuj sie directx oraz overlayem. ale wierz mi, jesli winapi Cie straszy, to to bedzie jeszcze gorsze ;))
0
winapi mnie nie straszy jednak ja chciałem sie bardziej zagłębić w temat zarządzania urządzeniami wejścia-wyjścia. Chodzi mnie o zarządzanie tym co ekran wyświetla. Jeśli ktoś mi napisze funkcje w winapi która wyświetli piksel bez okna to też będę wdzięczny.
0
Zacznij od
#define hwnd 0 // desktop
HDC dc = GetDC(hwnd);
COLORREF stary_kolor = GetPixel(dc, 10,11); // x=10; y=11
SetPixel(dc, 10,11, RGB(255,255,255)); // zmiana koloru pixela
ReleaseDC(hwnd, dc);
#undef hwnd
Gdybyś jednak planował pracę z większą ilością pixeli to odradzam takie rozwiązanie, jeśli chcesz by program był wydajny. Zaleciłbym stworzenie bitmapy DIB, skopiowanie do niej zawartości desktopu, modyfikację pixeli bezpośrednio w pamięci i ostatecznie skopiowanie bitmapy back na desktop: CreateCompatibleDC, CreateDibSection, SelectObject, BitBlt