![]() |
Подскажите пожалуйста метод для более быстрого получения цвета пикселей чем GetPixel.
3: [CODE] int pos_x = 0 ; while ( true ) { Sleep ( 1 ) ; pos_x ++ ; if ( pos_x >= 100 ) pos_x = 0 ; COLORREF color = GetPixel ( GetDC ( 0 ) , pos_x , 50 ) ; ReleaseDC ( GetDesktopWindow ( ) , GetDC ( GetDesktopWindow ( ) ) ) ; std :: cout Либо я тупой🙄 и не так использую но он медленный. |
не используй бесконечный цикл, это плохо, и используй поточную задержку в 500 млсек.
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цвет пикселя - C++ - Киберфорум
Цвет пикселя C++ Решение и ответ на вопрос 2685949 www.cyberforum.ru XLAT выкладывал код мини программы, я удалил всё не нужное, оставил только функцию сканирования экрана. Использовал в своём говно боте, работает быстро, в отличии от GetPixel Пример: Код:
CaptureScreen CaptureScЛучше используй get_pixel() вне цикла, иначе будет работать существенно медленней |
Цитата:
Да и каким образом получать цвет по кд не юзая цикл. Ожидания нужного цвета = цикл. Но твой ответ верный. |
Цитата:
[CODE] #include #include #include "XLAT_head.h" int main ( ) { using namespace std ; CaptureScreen CaptureSc ; // Перебирает 2 073 600 пикселей int s_1 = clock ( ) ; CaptureSc . get_pixel ( 0 , 0 , 1920 , 1080 ) ; for ( int x = 0 ; x https://forum.antichat.xyz/attachments/27994073/ Один раз просканируй экран через get_pixel() и потом перебирай отдельные пиксели через цикл, при таком подходе получается ~50 млн пикселей в секунду |
[QUOTE="Apsapeh"]
Пример: [CODE] #include #include #include "XLAT_head.h" int main ( ) { using namespace std ; CaptureScreen CaptureSc ; // Перебирает 2 073 600 пикселей int s_1 = clock ( ) ; CaptureSc . get_pixel ( 0 , 0 , 1920 , 1080 ) ; for ( int x = 0 ; x #include #include "XLAT_head.h" int main ( ) { using namespace std ; CaptureScreen CaptureSc ; // Перебирает 2 073 600 пикселей int s_1 = clock ( ) ; CaptureSc . get_pixel ( 0 , 0 , 1920 , 1080 ) ; for ( int x = 0 ; x |
| Время: 00:36 |