Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi-ziskani barvy pixelu

55 if-ov 50-krát za sekundu si CPU ani nevšimne.

Horšie je to s tými zbytočnými volaniami ColorToHTMLHex - každý riadok by bol efektívnejši, keby bol zapísaný nejako takto (v Delphi nerobím, môžu tam byť chyby):

if getpixel(c.handle, 613, 442) = $FF0000 then n := 1;
Ďalšia vec je, že by si mal používať aj else, pretože takto porovnávaš niektoré pixle úplne zbytočne, čím strácaš rýchlosť.

Úplne najväčším zdržaním je volanie metódy getpixel. Normálne sa to robí tak, že si skopíruješ časť obrazovky do pamäte a zisťovanie farieb pixlov robíš v pamäti. Na to existuje v GDI metóda BitBlt, takže skús pogoogliť, či sa dá BitBlt volať nejako z Delphi.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny