Badanie koloru piksela

0

Witam

W programie, który wykonuję sprawdzam kolory danych pikseli. Napisałem warunek, ze jesli piksel czarny to robi jedna rzecz a w przeciwnym wypadku drugą. Chciałbym jednak napisać to w taki sposób, że jeśli piksel ciemniejszy od jakiegoś wybranego koloru to robi pierwsza rzecz w przeciwnym wypadku drugą ( kolory to różne odcieni szarości). Może ktoś mi podpowiedzieć jak to zrobić?? Z góry dziękuję z pomoc.

0

Jesli sa to małe bitmapki to możesz użyć składni Canvas->Pixels jako dostep do pixeli.Ustalasz składowe R_odniesienia,G_odniesienia,B_odniesienia koloru referencyjnego odniesienia np:(67,234,120).
Definiujesz zmienna kolor typu TColor.Potem w pentelce wierszami sprawdzasz po kolei każdy pixel.
kolor=Image1->Canvas->Pixels[x][y].
Odczytujesz skladowa po kolei R,G,B pixela przy pomocy GetRValue(kolor) i zapisujesz ja np do zmiennej R typu np int.itd...
Kiedy masz juz odczytane skladowe RGB danego pixela porównujesz je ze skladowymi referencyjnymi np tak:
if (R<R_odniesienia && G<G_odniesienia && B<B_odniesienia)
{
instrukcje....
}
else
{
instrukcje...
}

Wydaje mi sie ,ze tak da rade to zrobic...
Moglem popelnic gdzies bledy literówki/skladniowe bo pisalem z pamieci.Powinienes sobie poradzic, jesli nie to napisz...udanej zabawy

0

Witam. Zeby nie zakladać niepotrzebnie nowego tematu odświerze ten ponieważ temat mógłbym dać taki sam.
Napisałem program ktory ma sprawdzac kolor pixela, jesli jest on zgodny z podanym wczesniej kolorem to wykonuje czynność. Problem jest taki, ze z kazdego okna normalnie zczytuje mi kolor danego pixela jedynie z okna na którym mi zależy zawsze pokazuje mi koloe "0". Dodam ze to okno gry.
Oto fragment kodu:

HWND hOkno ;
hOkno = GetForegroundWindow();
HDC hdc = GetDC(hOkno);
do
{
COLORREF kolor = GetPixel(hdc,100,100); 
cout << kolor << endl;
}
while (kolor != dobry_kolor);

Poradzi ktoś coś?

0

Obraz generowany przez DirectX nie może być przechwycony przez GDI w ten sposób.

Możesz spróbować w ten sposób: http://www.codeproject.com/KB/dialog/screencap.aspx#And%20The%20DirectX%20way%20of%20doing%20it%20:
A jeżeli nie wyjdzie, to szukaj dalej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1